Está en la página 1de 345

UNIVERSIDAD NACIONAL DE LA RIOJA

INGENIERIA EN SISTEMAS Y LICENCIATURA EN


SISTEMAS

MANUAL DE CATEDRA
PROCESAMIENTO DE DATOS I

DOCENTES
TITULAR: LIC. MARCELO MARTINEZ
ADJUNTO: ING. CLAUDIA CESARINI
J.T.P: ING. FERNANDO SANCHEZ

AO 2003

INDICE GENERAL
BOLILLA I: LA COMPUTADORA..............................................................................................4
INDICE.......................................................................................................................................5
INTRODUCCIN...................................................................................................................12
LA COMPUTADORA............................................................................................................13
CONCEPTO:.........................................................................................................................13
FUNCIONES Y ACCIONES:...............................................................................................13
Para qu sirve una computadora?:.........................................................................................13
Computadora y Circuitos:......................................................................................................14
HARDWARE Y SOFTWARE: ............................................................................................14
Arquitectura - Componentes Bsicos:...................................................................................15
BUSES DE COMPUTADORAS:.........................................................................................16
Buses sncronos y asncronos: ..............................................................................................18
Canales de e/s.........................................................................................................................20
SISTEMA OPERATIVO.......................................................................................................23
CONCLUSIN........................................................................................................................25
BOLILLA II (Parte 1): EL NIVEL DE LOGICA DIGITAL.....................................................26
INDICE.....................................................................................................................................27
INTRODUCCIN...................................................................................................................34
EL NIVEL DE LOGICA DIGITAL......................................................................................35
COMPUERTAS Y ALGEBRA BOOLEANA......................................................................35
CIRCUITOS DIGITALES BSICOS..................................................................................44
MEMORIA............................................................................................................................57
MICROPROCESADORES y BUSES...................................................................................66
CONCLUSIN........................................................................................................................79
BOLILLA II (Parte 2): EL NIVEL DE MICROPROGRAMACIN.......................................80
INDICE.....................................................................................................................................81
INTRODUCCIN...................................................................................................................88
EL NIVEL DE MICROPROGRAMACIN .......................................................................89
REPASO SOBRE EL NIVEL DE LGICA DIGITAL .......................................................90
UNA MICROARQUITECTURA TIPICA ...........................................................................96
UNA MACROARQUITECTURA TIPICA .......................................................................103
MICROPROGRAMACIN: UN EJEMPLO ....................................................................110
EL DISEO DEL NIVEL DE MICROPROGRAMACIN ............................................115
CONCLUSIN......................................................................................................................134
................................................................................................................................................135
BOLILLA II (Parte 3): EL NIVEL DE MAQUINA CONVENCIONAL................................135
INDICE...................................................................................................................................136
INTRODUCCIN.................................................................................................................143
EL NIVEL DE MQUINA CONVENCIONAL.................................................................144

EJEMPLOS DEL NIVEL DE MAQUINA CONVENCIONAL........................................144


FORMATOS DE INSTRUCCIN.....................................................................................145
Tipos de Instrucciones ........................................................................................................160
Flujo De Control .................................................................................................................173
CONCLUSIN......................................................................................................................187
BOLILLA III: ARQUITECTURA DEL PROCESADOR.......................................................188
INDICE...................................................................................................................................189
INTRODUCCIN.................................................................................................................196
ARQUITECTURA DEL PROCESADOR..........................................................................197
ESTRUCTURA GENERAL...............................................................................................197
DESCRIPCIN DE LOS COMPONENTES DE UN PROCESADOR ............................197
Microprocesadores...............................................................................................................200
EJECUCIN DE LAS INSTRUCCIONES .......................................................................201
ORGANIZACIN DE LA CPU ........................................................................................202
LA UNIDAD ARITMTICA Y LGICA .........................................................................204
LA UNIDAD DE CONTROL.............................................................................................206
FASE DE BSQUEDA DE LA INSTRUCCIN .............................................................207
FASE DE BSQUEDA O ALMACENAMIENTO DEL OPERANDO ...........................207
FASE DE PREPARACIN DE LA SIGUIENTE INSTRUCCIN .................................209
INSTRUCCIN DE RUPTURA DE SECUENCIA ..........................................................209
EL CANAL..........................................................................................................................210
LAS UNIDADES PERIFRICAS .....................................................................................211
INTERRUPCIONES ..........................................................................................................211
CONCLUSIN......................................................................................................................214
BOLILLA IV: MEMORIA........................................................................................................215
INDICE...................................................................................................................................216
INTRODUCCIN.................................................................................................................223
MEMoRia ..............................................................................................................................224
DIRECCIONES DE MEMORIA .......................................................................................225
ORDENAMIENTO DE BYTES ........................................................................................226
CDIGOS CORRECTORES DE ERRORES ....................................................................227
CLASIFICACIN Y ORGANIZACIN DE LAS MEMORIAS .....................................227
PARMETROS y CARACTERSTICAS MS IMPORTANTES DE UNA MEMORIA 228
CONCLUSIN......................................................................................................................245
................................................................................................................................................246
BOLILLA V: EL NIVEL DEL LENGUAJE ENSAMBLADOR.............................................246
INDICE...................................................................................................................................247
INTRODUCCIN.................................................................................................................254
EL NIVEL DEL LENGUAJE ENSAMBLADOR..............................................................255
INTRODUCCIN AL LENGUAJE ENSAMBLADOR ...................................................256
EL PROCESO DE ENSAMBLAJE ...................................................................................261
MACrOS .............................................................................................................................269
MONTAJE (LINKING) y CARGA ...................................................................................272

CONCLUSIN......................................................................................................................282
BOLILLA VI (Parte 1): PERIFRICOS.................................................................................283
INDICE...................................................................................................................................284
INTRODUCCIN.................................................................................................................291
PERIFRICOS......................................................................................................................292
RESEA HISTRICA.......................................................................................................292
INTRODUCCIN ...............................................................................................................292
PERlFERICOS DE ENTRADA: ........................................................................................293
PERIFERICOS DE SALIDA: ............................................................................................304
PERIFERICOS DE COMUNICACION.. ..........................................................................307
CONCLUSIN....................................................................................................................308
CONCLUSIN......................................................................................................................309
BOLILLA VI (PARTE 2): TCNICAS Y DISPOSITIVOS DE ENTRADA SALIDA...........310
INDICE...................................................................................................................................311
INTRODUCCIN.................................................................................................................318
TECNICAS Y DISPOSITIVOS DE ENTRADA / SALIDA (Input / Ouput)..................319
Dispositivos de fichas y de banda perforada.......................................................................319
Dispositivos de soporte magntico......................................................................................323
Impresoras............................................................................................................................323
Plotter...................................................................................................................................330
La pantalla............................................................................................................................331
Terminales...........................................................................................................................332
Procesos de comunicacin para la transmisin de datos a distancia...................................334
Otros perifricos..................................................................................................................334
Tcnicas de entrada/salida (input/output)............................................................................335
GLOSARIO.........................................................................................................................340
CONCLUSIN......................................................................................................................342
CONCLUSIN FINAL..............................................................................................................343
BIBLIOGRAFA .......................................................................................................................344

BOLILLA I: LA
COMPUTADORA

INDICE
INDICE GENERAL............................................................................................1
BOLILLA I: LA COMPUTADORA..............................................................................................4
INDICE.......................................................................................................................................5
INTRODUCCIN...................................................................................................................12
LA COMPUTADORA............................................................................................................13
CONCEPTO:.........................................................................................................................13
FUNCIONES Y ACCIONES:...............................................................................................13
Para qu sirve una computadora?:.........................................................................................13
Computadora y Circuitos:......................................................................................................14
HARDWARE Y SOFTWARE: ............................................................................................14
Software: ...........................................................................................................................14
Al software se lo clasifica en dos grupos: .....................................................................14
Hardware:...........................................................................................................................15
Arquitectura - Componentes Bsicos:...................................................................................15
Unidad de Control:.............................................................................................................15
Unidad aritmtico-lgica:..................................................................................................15
Memoria:(Memoria Central)..............................................................................................15
Perifricos: ........................................................................................................................15
Ncleo de la computadora: ...............................................................................................15
BUSES DE COMPUTADORAS:.........................................................................................16
Buses sncronos y asncronos: ..............................................................................................18
Arbitraje del bus:...............................................................................................................19
Ejemplo de encadenamiento margarita:.............................................................................19
Solicitud del Bus............................................................................................................19
Dispositivos de E/S............................................................................................................19
Manejo de interrupciones:.................................................................................................20
Canales de e/s.........................................................................................................................20
TECNOLOGA DE CANALES:.......................................................................................21
TIPOS DE CANALES:.....................................................................................................21
Multiplexor: ..................................................................................................................21
Selector..........................................................................................................................22
Multipexor por bloques: ................................................................................................22
Spoll: .........................................................................................................................22
SISTEMA OPERATIVO.......................................................................................................23
Introduccin: ....................................................................................................................23
QU ES UN SISTEMA OPERATIVO?.........................................................................24
CONCLUSIN........................................................................................................................25
BOLILLA II (Parte 1): EL NIVEL DE LOGICA DIGITAL.....................................................26
INDICE.....................................................................................................................................27
INTRODUCCIN...................................................................................................................34
EL NIVEL DE LOGICA DIGITAL......................................................................................35
COMPUERTAS Y ALGEBRA BOOLEANA......................................................................35
Compuertas........................................................................................................................35
Algebra booleana...............................................................................................................37
Implementacin de funciones booleanas ..........................................................................38

Equivalencia entre circuitos...............................................................................................40


CIRCUITOS DIGITALES BSICOS..................................................................................44
Circuitos integrados ..........................................................................................................44
Circuitos combinacionales ................................................................................................47
Multiplexores ................................................................................................................47
Decodificadores ............................................................................................................49
Comparadores ...............................................................................................................51
Arreglos (matrices) lgicos programables ....................................................................51
Circuitos aritmticos..........................................................................................................53
Registros de corrimiento................................................................................................53
Sumadores .....................................................................................................................54
Unidades aritmticas y lgicas......................................................................................55
Relojes ..............................................................................................................................55
MEMORIA............................................................................................................................57
Biestables...........................................................................................................................57
Bieslables SR sincronizados..........................................................................................59
Biestables D sincronizados............................................................................................59
Flip-flops y registros..........................................................................................................59
Registros........................................................................................................................60
Organizacin de las memorias...........................................................................................61
Propiedades de las memorias.............................................................................................64
MICROPROCESADORES y BUSES...................................................................................66
Microprocesadores ............................................................................................................66
Buses de computadora.......................................................................................................68
Buses sncronos .................................................................................................................70
BUSES ASINCRONOS....................................................................................................73
Arbitraje del bus ................................................................................................................74
Manejo de interrupciones ..................................................................................................77
CONCLUSIN........................................................................................................................79
BOLILLA II (Parte 2): EL NIVEL DE MICROPROGRAMACIN.......................................80
INDICE.....................................................................................................................................81
INTRODUCCIN...................................................................................................................88
EL NIVEL DE MICROPROGRAMACIN .......................................................................89
REPASO SOBRE EL NIVEL DE LGICA DIGITAL .......................................................90
Registros ..........................................................................................................................90
Buses .................................................................................................................................90
Multiplexores y decodificadores .......................................................................................92
Unidades aritmticas y lgicas y registros de corrimiento ...............................................92
Relojes ..............................................................................................................................93
Memoria principal .............................................................................................................94
Encapsulado de los componentes .....................................................................................95
UNA MICROARQUITECTURA TIPICA ...........................................................................96
La ruta de datos .................................................................................................................96
Microinstrucciones ............................................................................................................98
Cronologa de las microinstrucciones .............................................................................100
Secuenciamiento de las microinstrucciones ...................................................................102
UNA MACROARQUITECTURA TIPICA .......................................................................103
Pilas .................................................................................................................................103

El juego de macroinstrucciones ......................................................................................107


MICROPROGRAMACIN: UN EJEMPLO ....................................................................110
El lenguaje micro ensamblador .......................................................................................110
El ejemplo de microprograma .........................................................................................111
Observaciones sobre el microprograma ..........................................................................113
Perspectivas ....................................................................................................................114
EL DISEO DEL NIVEL DE MICROPROGRAMACIN ............................................115
Microprogramacin horizontal frente a microprogramacin vertical..............................115
Nanoprogramacin ..........................................................................................................122
Mejora del rendimiento ...................................................................................................123
Memoria cach ...............................................................................................................129
CONCLUSIN......................................................................................................................134
................................................................................................................................................135
BOLILLA II (Parte 3): EL NIVEL DE MAQUINA CONVENCIONAL................................135
INDICE...................................................................................................................................136
INTRODUCCIN.................................................................................................................143
EL NIVEL DE MQUINA CONVENCIONAL.................................................................144
EJEMPLOS DEL NIVEL DE MAQUINA CONVENCIONAL........................................144
FORMATOS DE INSTRUCCIN.....................................................................................145
Criterios de diseo de formatos de instruccin................................................................146
Cdigos de operacin con extensin...............................................................................147
Ejemplos de formatos de instrucciones...........................................................................149
La PDP-11...................................................................................................................149
Direccionamiento.............................................................................................................149
Direccionamiento inmediato........................................................................................150
Direccionamiento directo.............................................................................................150
Direccionamiento de registros.....................................................................................151
Direccionamiento indirecto..........................................................................................151
Indexacin....................................................................................................................152
Direccionamiento por medio de pilas..........................................................................153
Notacin polaca inversa...........................................................................................155
Evaluacin de frmulas en la notacin polaca inversa............................................157
Algoritmo.............................................................................................................157
Algoritmo.............................................................................................................157
Ejemplos de direccionamiento.....................................................................................160
Direccionamiento en la PDP-11..............................................................................160
Tipos de Instrucciones ........................................................................................................160
Instrucciones de movimiento de datos ............................................................................161
Operaciones binarias .......................................................................................................161
Operaciones unarias ........................................................................................................162
Comparaciones y Saltos Condicionales...........................................................................164
Instrucciones de llamada a procedimiento ......................................................................166
Control de iteraciones .....................................................................................................167
Entrada / salida ................................................................................................................168
Flujo De Control .................................................................................................................173
Flujo de control secuencial y saltos ................................................................................173
Procedimientos ................................................................................................................174
Corrutinas ........................................................................................................................179
7

Desvios ............................................................................................................................182
Interrupciones .................................................................................................................183
ACCIONES DE HARDWARE ..................................................................................183
ACCIONES DE SOFTWARE ...................................................................................184
CONCLUSIN......................................................................................................................187
BOLILLA III: ARQUITECTURA DEL PROCESADOR.......................................................188
INDICE...................................................................................................................................189
INTRODUCCIN.................................................................................................................196
ARQUITECTURA DEL PROCESADOR..........................................................................197
ESTRUCTURA GENERAL...............................................................................................197
DESCRIPCIN DE LOS COMPONENTES DE UN PROCESADOR ............................197
Microprocesadores...............................................................................................................200
EJECUCIN DE LAS INSTRUCCIONES .......................................................................201
ORGANIZACIN DE LA CPU ........................................................................................202
LA UNIDAD ARITMTICA Y LGICA .........................................................................204
LA UNIDAD DE CONTROL.............................................................................................206
FASE DE BSQUEDA DE LA INSTRUCCIN .............................................................207
FASE DE BSQUEDA O ALMACENAMIENTO DEL OPERANDO ...........................207
Caso de bsqueda del operando, seguido de procesamiento: .........................................207
Caso de almacenamiento del operando: ..........................................................................208
FASE DE PREPARACIN DE LA SIGUIENTE INSTRUCCIN .................................209
INSTRUCCIN DE RUPTURA DE SECUENCIA ..........................................................209
EL CANAL..........................................................................................................................210
LAS UNIDADES PERIFRICAS .....................................................................................211
INTERRUPCIONES ..........................................................................................................211
CONCLUSIN......................................................................................................................214
BOLILLA IV: MEMORIA........................................................................................................215
INDICE...................................................................................................................................216
INTRODUCCIN.................................................................................................................223
MEMoRia ..............................................................................................................................224
DIRECCIONES DE MEMORIA .......................................................................................225
ORDENAMIENTO DE BYTES ........................................................................................226
CDIGOS CORRECTORES DE ERRORES ....................................................................227
CLASIFICACIN Y ORGANIZACIN DE LAS MEMORIAS .....................................227
PARMETROS y CARACTERSTICAS MS IMPORTANTES DE UNA MEMORIA 228
Capacidad.........................................................................................................................228
Formas de acceder a las posiciones de memoria ............................................................229
Memorias de acceso aleatorio (RAM = Ramdom Acess Memory) ............................229
Estructura de una RAM semiconductora ................................................................231
Pastillas de memoria en paralelo ........................................................................233
Memorias pasivas....................................................................................................235
Memorias de acceso serie ...........................................................................................236
Memorias asociativas ..................................................................................................238
MODOS DE DIRECCIONAMIENTO ..........................................................................239
Modo de direccionamiento directo .............................................................................239
Modo de direccionamiento indirecto ..........................................................................240
8

Modo de direccionamiento relativo ............................................................................240


Modo de direccionamiento indexado ..........................................................................242
Modo de direccionamiento por registro indirecto .......................................................243
Otros modos de direccionamiento ..............................................................................244
CONCLUSIN......................................................................................................................245
................................................................................................................................................246
BOLILLA V: EL NIVEL DEL LENGUAJE ENSAMBLADOR.............................................246
INDICE...................................................................................................................................247
INTRODUCCIN.................................................................................................................254
EL NIVEL DEL LENGUAJE ENSAMBLADOR..............................................................255
INTRODUCCIN AL LENGUAJE ENSAMBLADOR ...................................................256
Qu es un lenguaje ensamblador? .................................................................................256
Formato de una sentencia en lenguaje ensamblador .......................................................257
Comparacin entre el. lenguaje ensamblador y los lenguajes de alto nivel ...................258
Afinacin de programas ..................................................................................................259
EL PROCESO DE ENSAMBLAJE ...................................................................................261
Ensambladores de dos pasadas .......................................................................................261
La primera pasada ...........................................................................................................262
La segunda pasada ..........................................................................................................266
La tabla de smbolos .......................................................................................................267
MACrOS .............................................................................................................................269
Definicin, llamada y expansin de una macro ..............................................................269
Macros con parmetros ...................................................................................................271
Implementacin de macros en un ensamblador ..............................................................271
MONTAJE (LINKING) y CARGA ...................................................................................272
Tareas realizadas por el programa ensamblador .............................................................274
Estructura de un mdulo objeto ......................................................................................276
Tiempo de ligadura y reubicacin dinmica ...................................................................277
Enlace dinmico ..............................................................................................................279
CONCLUSIN......................................................................................................................282
BOLILLA VI (Parte 1): PERIFRICOS.................................................................................283
INDICE...................................................................................................................................284
INTRODUCCIN.................................................................................................................291
PERIFRICOS......................................................................................................................292
RESEA HISTRICA.......................................................................................................292
INTRODUCCIN ...............................................................................................................292
PERlFERICOS DE ENTRADA: ........................................................................................293
TECLADO: .....................................................................................................................293
Cuidados y advertencias..............................................................................................294
MOUSE (RATON) .........................................................................................................295
Tipos de ratones...........................................................................................................296
Ratones Inalmbricos. .............................................................................................296
Ratones Estacionarios..............................................................................................296
PANTALLAS TCTILES: ............................................................................................296
BOLAS GIRATORIAS: .................................................................................................296

ESCANER ......................................................................................................................296
Profundidad de color....................................................................................................296
Tipos de escner:.........................................................................................................297
Escner de mano: ....................................................................................................297
Ventaja: ...............................................................................................................297
Desventajas: ........................................................................................................297
Escner de Sobremesa: ...........................................................................................297
Ventajas: .............................................................................................................297
Desventajas: ........................................................................................................297
Escner de Rodillo:..................................................................................................297
Calibracin...................................................................................................................297
LECTORES DE CODIGO DE BARRA.....................................................................297
TABLETA DIGITALIZADORA....................................................................................298
LECTORES DE TARJETAS MAGNETICAS...............................................................298
LAPIZ OPTICO: ............................................................................................................298
PERIFERICOS DE ALMACENAMIENTO: .................................................................299
Discos...........................................................................................................................299
Discos flexibles............................................................................................................299
Fiabilidad del soporte. .............................................................................................300
Facilidad de manejo y almacenamiento. .................................................................300
1. Disco flexible de 5 1/4 pulgadas .....................................................................300
2. Disco flexible de 3 1/2pulgadas ......................................................................300
Disco duro....................................................................................................................300
Discos opticos: ............................................................................................................301
Cintas magneticas: ......................................................................................................302
DVD:............................................................................................................................302
Prestaciones del DVD: ............................................................................................303
El disco por dentro: .................................................................................................303
La compresin MPEG-2: ........................................................................................303
El futuro del DVD: .................................................................................................303
PERIFERICOS DE SALIDA: ............................................................................................304
PANTALLAS DE SISTEMAINFORMATICO (Monitor): ...........................................304
Impresoras........................................................................................................................305
Impresoras con cinta entintada: ..................................................................................305
Impresora de Bola: ..................................................................................................305
Impresoras de agujas: ..............................................................................................306
Impresoras sin cinta entintadas: ..................................................................................306
Impresoras trmicas: ...............................................................................................306
Impresoras de inyeccin de tinta: ...........................................................................306
Impresoras lser: .....................................................................................................306
Impresoras Lser de color: ......................................................................................306
PERIFERICOS DE COMUNICACION.. ..........................................................................307
MODEM..........................................................................................................................307
Aspectos tcnicos.........................................................................................................307
Como usar la Tecnologa 56K ................................................................................307
CONCLUSIN....................................................................................................................308
CONCLUSIN......................................................................................................................309
BOLILLA VI (PARTE 2): TCNICAS Y DISPOSITIVOS DE ENTRADA SALIDA...........310
INDICE...................................................................................................................................311

10

INTRODUCCIN.................................................................................................................318
TECNICAS Y DISPOSITIVOS DE ENTRADA / SALIDA (Input / Ouput)..................319
Dispositivos de fichas y de banda perforada.......................................................................319
Dispositivos de soporte magntico......................................................................................323
Impresoras............................................................................................................................323
Plotter...................................................................................................................................330
La pantalla............................................................................................................................331
Terminales...........................................................................................................................332
Procesos de comunicacin para la transmisin de datos a distancia...................................334
Otros perifricos..................................................................................................................334
Tcnicas de entrada/salida (input/output)............................................................................335
Polling (interrogatorio de trfico) ...................................................................................336
Interrupciones (interrupts) ..............................................................................................338
Transferencia DMA ........................................................................................................339
GLOSARIO.........................................................................................................................340
CONCLUSIN......................................................................................................................342
CONCLUSIN FINAL..............................................................................................................343
BIBLIOGRAFA .......................................................................................................................344

11

INTRODUCCIN

12

APUNTES DE CATEDRA
CARRERA:
Ctedra:
Profesor:
AO:

LICENCIATURA EN ANALISIS DE SISTEMAS


INGENIERIA EN SISTEMAS
Procesamiento De Datos I
Lic. Marcelo Martinez
2003

LA COMPUTADORA
CONCEPTO:
Mquina capaz de realizar y controlar a gran velocidad clculos y procesos
complicados que requieren una toma rpida de decisiones mediante la aplicacin
sistemtica de criterios preestablecidos.
La computadora se la relaciona a un cerebro electrnico, teniendo en cuenta que debe
ser programada para cada tarea que se requiera.
La computadora puede recibir diversos nombres. El trmino computadora procede del
ingls (computer) y significa mquina de computar o calcular. Del trmino francs
ordinateur procede la denominacin de Ordenador que se refiere a la tarea de poner en
orden la informacin. Son dos perspectivas distintas y complementarias. Tambin recibe el
nombre de cerebro electrnico.

FUNCIONES Y ACCIONES:
La computadora tiene una estructura mecnica que permite realizar operaciones a
gran velocidad, la celeridad con que elabora sus clculos es sorprendente. La velocidad
operativa se mide en millones de operaciones por segundo.
Adems de la actividad de realizar clculos numricos, realiza otro tipo de tarea que
consiste en el manejo de los Procesos. La computadora trata diversas informaciones, las
ordena y combina apropiadamente segn las indicaciones de un programa. Por ej.: la
realizacin de un censo de la poblacin, la confeccin de la nmina o el tratamiento de
texto.
Los clculos y procesos que lleva a cabo la computadora son complicados en el sentido
que resultan prolijos, largos y que exigen una gran precisin, y suponen por ello un gran
esfuerzo por parte del hombre. La ventaja de la mquina a este respecto es que ni sienten ,
ni padecen.
Como resultado de estas caractersticas, la computadora ofrece unas posibilidades
enormes para la realizacin de procesos que, de otro modo no seran factibles (por su
duracin), ni tampoco rentables (requeriran concurso de muchas personas). Aporta un alto
nivel de fiabilidad por su precisin y su control, a la vez que permite eludir tareas
repetitivas al ser humano; tareas en las que la mquina se muestra incansable e insensible
y que, por el contrario, generan fatiga en el hombre.

PARA QU SIRVE UNA COMPUTADORA?:


La computadora introdujo un cambio cualitativo, tanto en la organizacin como en el
desarrollo del trabajo y el ocio. Y no por lo que es sino por lo que hace.
La computadora puede hacer muchas cosas: controlar el riego y las condiciones
ambientales de una plantacin, realizar una exploracin delicadsima del cerebro humano,
asistir una operacin quirrgica, prevenir riesgos atmosfricos, probar recetas de cocina,
enviar cartas a la velocidad de la luz, regular todos los elementos mecnicas y electrnicos
de un edificio, realizar el censo de poblacin de un pas, ver la casa antes de construirla,
etc.. y as sucesivamente.
Lo que no debemos olvidar es que la computadora slo est limitada por nuestra
propia capacidad imaginativa, si bien los desarrollos en microcomputacin y nuevos
lenguajes han de proveer a este instrumento de un motor social mucho ms poderoso.

13

COMPUTADORA Y CIRCUITOS:
Una computadora en el fondo no es ms que un circuito electrnico muy complejo. Lo
que llamamos corriente elctrica es, efectivamente, una corriente de cargas elctricas que
pasa a travs de una circuito de la misma manera que el agua circula por las tuberas.
Quizs el circuito ms sencillo sea una lmpara enchufada a la corriente elctrica. La
lmpara es una resistencia, al pasar la corriente, la resistencia se calienta hasta que
empieza a emitir luz.
Ahora bien, un circuito elctrico puede ser sencillo como el recin descrito, o
sumamente complejo como el que hace funcionar a una supercomputadora. Adems de las
resistencias, otros componentes de los circuitos son los condensadores y las inductancias.
Un condensador sirve para acumular carga elctrica hasta un lmite a partir del cual ya no
deja pasar ms corriente. Una inductancia es una bobina, un cable enrollado sobre un
ncleo de metal. La inductancia es sensible a las variaciones de corriente elctrica. Con
resistencias, condensadores e inductancias se fabrican, por ejemplo, los sintonizadores
radiofnicos.
Los circuitos electrnicos en lugar de cable elctrico utilizan una fina capa de metal
sobre un soporte de silicio. Sobre la capa metlica se conectan los distintos componentes,
esto es un circuito impreso.
El elemento que ms ha influido en el desarrollo de las computadoras es el transistor.
Un transistor es una combinacin de metales semiconductores. Los semiconductores son
materiales con una estructura atmica particular. Los tomos que los componen estn
organizados en una estructura cristalina. El transistor es el resultado de la unin especial de
tres semiconductores. Un transistor permite, por una parte, amplificar y hacer ms intensa
una corriente elctrica, por otra, se comporta como un interruptor, en funcin de la cantidad
de corriente elctrica que recibe se cierra o se abre. A base de combinar transistores se
consiguen circuitos capaces de realizar funciones complejas, como sumar nmeros binarios.
Las computadoras no son ms que grandes manojos de transistores combinados muy
hbilmente; y una moderna necesita millones de transistores conectados para realizar todas
sus funciones. La conexin de tantsimos elementos sera fsicamente imposible si no fuera
por los circuitos integrados. Un circuito integrado es una superposicin de finsimas capas
de material semiconductor en las que se recortan y unen los transistores mediante
complicados procesos de alta tecnologa. El resultado es una pieza llamada Chip, que en una
superficie de escasos milmetros cuadrados contiene millones de transistores.

HARDWARE Y SOFTWARE:
La computadora presenta dos aspectos ntimamente relacionados: el hardware y el
software. La palabra inglesa hardware se refiere a aquella parte dura o material. El
trmino software designa aquella otra parte blanda o lgica. As pues, etimolgicamente,
la computadora se compone de una parte dura y de una parte blanda. Estas expresiones
han de entenderse metafricamente. Significan que existen unos elementos materiales o
tangibles, los que forman el llamado soporte fsico del procesamiento de la informacin
como los circuitos, los aparatos y terminales y tambin unos elementos intangibles de
programacin, que se designan como soporte lgico.

Software:
Conjunto de Instrucciones de programa de computador que dirige la operacin del
hardware.
Un conjunto de instrucciones para una tarea especfica se llama Rutina.
Un conjunto completo de instrucciones para ejecutar un conjunto de tareas
relacionadas se llama PROGRAMA.

Al software se lo clasifica en dos grupos:


Software de Base: controla las operaciones de la computadora en s (Sistema
Operativo, Bios).
Software de Aplicacin: los cuales resuelven problemas para los usuarios (programas
del usuario).

14

Hardware:
Es el conjunto de elementos fsicos (mquinas y circuitos) y puede ser comparado con
la fuerza; el hardware difcilmente puede ser modificado, y abarca todos los componentes
materiales de la propia computadora, sean mecnicos, elctricos o electrnicos, as como
las unidades perifricas, sean teclados, impresoras, monitores, etc..

ARQUITECTURA - COMPONENTES BSICOS:


Unidad de Control:
La unidad de control realiza la funcin de direccin central. Interpreta las instrucciones
del programa, que le indica las acciones que ha de realizar, y asigna las tareas a las
distintas partes del conjunto.

Unidad aritmtico-lgica:
Es la parte donde se realizan todos los procesos, a travs de las indicaciones de la
unidad de control. Realiza operaciones matemticas ( suma, resta, producto, divisin, etc.),
o de relacin lgica ( >, <, =, and, or, ), con los datos suministrados.
La reunin de la unidad de control y de la unidad aritmtico-lgica forma un conjunto
mayor que se denomina Unidad Central de Proceso de Datos, ms conocida con las siglas
inglesa de Central Processing Unit, CPU. La CPU es la encargada de desarrollar las
actividades fundamentales que realiza una computadora.

Memoria:(Memoria Central)
La memoria es el almacn donde se registran y quedan a disposicin de la CPU los
datos y programas. La memoria consiste en millones de pequeos circuitos que slo
memorizan dos tipos fsicos de informacin: si pasa corriente o si no pasa. Cada impulso
elctrico implica la memorizacin del dgito uno y la interrupcin de la corriente determina
la memorizacin de un cero. Toda la codificacin juega con un sistema binario, que puede
ejemplificarse dependiendo del dispositivo fsico tomado como modelo, de varias maneras:
abierto/cerrado, conectado/desconectado, 1/0. El sistema binario se distingue del que
utilizamos normalmente, que es decimal o de base diez.

Perifricos:
Los perifricos son elementos que forman parte del sistema fsico del equipo y que
cumplen funciones adicionales, pero necesarias. Existen muchos tipos de perifricos, los
fundamentales son el teclado, el monitor la unidad lectora de disco, la impresora , el ratn o
mouse, el escner, y el modem ( modelador y demodelador de frecuencia), entre otros.

Ncleo de la computadora:
El ncleo de la computadora est compuesto por la CPU y la memoria. La CPU como
ya dijimos comprende la unidad de control (UC) y la unidad aritmtico-lgica(UAL). La
memoria es de dos tipos: ROM y RAM; la memoria ROM (siglas que corresponden a la
expresin inglesa Read Only Memory, es decir, memoria de slo lectura), no puede
alterarse, viene prefijada fsicamente por el fabricante, contiene los programas necesarios
(englobados en la expresin sistema operativo), para que la mquina sepa cmo tiene que
operar con los programas y los datos que se le introduzcan, y pueda relacionar los
lenguajes de alto nivel (escrito por el programador), con el lenguaje mquina (cdigo
binario).
La memoria RAM (siglas de la expresin inglesa Random Access Memory, o sea,
memoria de acceso aleatorio), es la que el usuario puede utilizar libremente.
La memoria ROM es fija, es decir, se conserva en toda circunstancia, mientras que la
RAM es voltil y, cuando se desconecta el aparato, la informacin que contiene
desaparece( por eso antes de apagar la mquina hay que guardar o grabar la informacin
en el dispositivo fsico correspondiente) . La memoria ROM puede imaginarse como una caja
cerrada con una tapa de cristal, a ella slo se tiene acceso para leer o ver que contiene. Por

15

el contrario la memoria RAM es como un casillero de hotel (o celdas), en el que se depositan


llaves, cartas u otras cosas. Se tiene acceso a l y se puede cambiar la disposicin y los
tipos de cosas que contiene.
La estructura interna de la computadora realiza la funcin del tratamiento y
conservacin de la informacin. Los perifricos que se acoplan proveen dos etapas ms, que
anteceden y suceden a la etapa central. A travs de los perifricos se produce la entrada y
la salida de informacin, por ello se conocen tambin con el nombre de dispositivos de
entrada y salida o de E/S. Estas tres fases renen la labor desarrollada por las
computadoras.

UC
UAL

Instruccione
s
Datos
Resultados

Canal

Memoria
Central

Canal

Unidad
Central de
Proceso

Unidades
De E/S

Unidades Perifricas
La UC puede compararse al director de la fbrica, que distribuye las tareas en el taller,
a la UAL, con trabajadores contables que realizan todos los clculos y procesos que se les
indican. Los trabajos que stos llevan a trmino pasan de nuevo por el director, quin
controla la exactitud y calidad de las operaciones realizadas. Hay pues, un camino de doble
direccin entre la unidad de control y la unidad aritmtico-lgica; tambin existe un camino
doble entre la unidad de control y la memoria. La memoria Central es comparable al
almacn de la fbrica, all se guardan todos los elementos que han ingresado, as como las
instrucciones de procesamiento y los resultados de las operaciones parciales.
La UC es una especie de mecanismo de relojera electrnico interno que lee y ejecuta
una instruccin tras otra, a un ritmo dado.
Este ritmo es rapidsimo. Para saber cmo debe operar dispone de unos programas
recogidos en la memoria ROM que le instruyen acerca de las normas elementales de una
labor de direccin.

BUSES DE COMPUTADORAS:
Un bus es una ruta elctrica comn entre mltiples dispositivos. Un ejemplo comn es
el Bus del Sistema presente en toda microcomputadora, el cul consiste de 50 a 100
alambres de cobres paralelos grabados en al tarjeta matriz, con conectores espaciados a
intervalos regulares para conectar tarjetas de memoria y de entrada/salida. Dentro de la
misma pastilla del microprocesador puede haber varios buses para conectar sus
componentes internos, como se ilustra en la siguiente figura:

16

Registros
Buses
Bus del Sistema

ALU
Tarjeta
de
memoria

Tarjeta
de E/S

Tarjeta
de E/S

Bus integrado a la pastilla

Bus Local

Coprocesador
Los Buses son los ilustrados por las lneas con Flechas.
Los Sistemas de cmputo pueden tener varios buses.
A pesar que los diseadores de microprocesadores tienen la libertad de usar cualquier
clase de Bus, a efecto que las tarjetas diseadas por terceras personas puedan conectarse
al Bus del sistema, deben haber reglas bien definidas del funcionamiento de ste, las cuales
deben ser obedecidas por todos los dispositivos conectados al mismo. Esas reglas se
denominan Protocolo del Bus. Asimismo debe haber especificaciones mecnicas y elctricas
para que las tarjetas diseadas por terceros se ajusten al gabinete de tarjetas y tengan los
conectores necesarios para acoplarse a la tarjeta Matriz, tanto fsicamente como en
trminos de voltaje.
Algunos dispositivos conectados al Bus se encuentran en estado activo y pueden
iniciar transferencias, mientras que otros estn en estado pasivo aguardando solicitudes. A
los activos s les llama Maestros mientras que a los pasivos se les denomina Esclavos.
Cuando la CPU ordena leer o escribir un bloque a un controlador de discos, sta acta como
dispositivo Maestro el controlador como esclavo. Sin embargo, el controlador puede actuar
ms adelante como dispositivo Maestro, al indicar a la memoria que acepte las palabras que
lee de la unidad del disco.
Hay varias combinaciones tpicas entre dispositivos Maestros y esclavos. Sin embargo
LA MEMORIA NO PUEDE, bajo ninguna circunstancia, actuar como dispositivo Maestro.
Ejemplo de Combinaciones: Maestros y Esclavos del Bus.
Maestro
CPU
CPU
CPU
E/S
Coprocesador

Esclavo
Memoria
E/S
Coprocesador
Memoria
Memoria

Ejemplo
Extraccin de instrucc.y datos
Inicio de transferencia de datos
Traspaso de inst. de pto. Flotante
DMA(acceso directo memoria)
Extraccin de operadores

Debido a que las seales binarias que emiten los dispositivos no son lo
suficientemente fuertes para activar el Bus, en especial si ste es relativamente largo tiene
muchos o tiene muchos dispositivos conectados. Por esto la mayora de los dispositivos
maestros se conectan al bus a travs de una pastilla denominada manejador del bus, que es
en esencia un amplificador digital. En forma similar los dispositivos esclavos, se conectan

17

por medio de un receptor del bus. Para los dispositivos que pueden actuar ya sea como
maestros o esclavos, se utiliza una pastilla combinada llamada transmisor-receptor del bus.
Un Bus tiene lineas de direcciones de datos y de control, sin embargo no es necesario
que haya una correspondencia de 1 a 1 entre las seales de ambos. Por ejemplo a algunos
microprocesadores tienen tres patas que codifican las operaciones que se estn realizando,
como lectura o escritura de la memoria o de entrada/salida. Por su parte, un bus tpico
tendr una lnea para lectura de memoria, otra para escritura de memoria, una tercera para
lectura de E/S, una cuarta para escritura de E/S y as sucesivamente. Por lo tanto, se
requiere de una pastilla decodificadora entre la CPU y dicho Bus para convertir la seal
codificada de tres bits en seales separadas que puedan ser manejadas por las lneas del
bus. Hay aspectos relevantes a tener en cuenta en el diseo de buses tales como: la
sincronizacin del bus, el mecanismo de arbitraje, el manejo de interrupciones, y el manejo
de errores. Todos ellos tienen un gran impacto en la velocidad y en la amplitud de banda
del Bus.

BUSES SNCRONOS Y ASNCRONOS:


Dependiendo de los ciclos de tiempo., los buses pueden clasificarse en dos categoras:
un Bus sncrono tiene una lnea manejada por un oscilador de cristal. La seal de esta lnea
consiste en una onda cuadrada con una frecuencia que vara entre 5 y50 MHZ. Todas las
actividades del bus se realizan en un nmero entero de estos ciclos, denominados ciclos del
bus. El otro tipo de bus, el bus asncrono no tiene un reloj maestro, la longitud de los ciclos
del bus puede ser cualquiera que se necesite y no se requiere sea la misma entre cada par
de dispositivos. Lo mejor es manejar una tecnologa mixta utilizando un asncrono, esto es
un bus sin reloj maestro, en vez de que todo est amarrado al reloj, (como el caso del
sncrono, debido a sus intervalos de tiempos discretos, todo el trabajo se realiza en
mltiples enteros del reloj del bus. Si una CPU y una memoria particular son capaces de
completar una transferencia en 3.1 ciclos, deben ampliarla a 4.0, ya que los ciclos
fraccionados estn prohibidos, esto es uno de los inconvenientes), cuando el bus maestro
ha activado las seales de direccin, MREQ (indica que la memoria y no un dispositivo est
siendo accesada), RD (distingue las operaciones de lectura de las de escritura) y cualquier
otra que necesite, activa entonces una seal especial llamada SINM (SINcronizacin
Maestra). Cuando el dispositivo esclavo ve esta seal, realiza su trabajo tan rpido como
puede, activando al terminar la seal SINE (SINcronizacin Esclava). Tan pronto como el
maestro ve activada la seal SINE, sabe que los datos estn disponibles de modo que los
almacena en un registro interno y desactiva las lneas de direcciones lo mismo que MREQ,
RD Y SINM. A vez, cundo el esclavo observa desactivada la seal SINM, sabe que el ciclo se
ha completado, as que desactiva SINE, regresando a la situacin original, con todas las
seales desactivadas y aguardando el siguiente ciclo. Activar SINE ocasiona que se activen
las lneas de datos, as como tambin provoca que el esclavo active SINE. A su vez, activar
esta ltima seal conduce a desactivar las lneas de direcciones, MREQ, RD Y SINM.
Finalmente, desactivar SINM causa la desactivacin de SINE, terminando as la lectura.
Al conjunto de seales enlazadas de esta forma se le denomina sincronizacin
completa o bidireccional, cuya parte esencial consta de 4 pasos:
Se activa SINM
Se activa SINE en respuesta a SINM.
Se desactiva SINM en respuesta a SINE.
Se desactiva SINE en respuesta a la desactivacin de SINM.
Con esto debe quedar claro las ventajas de los buses asncronos, pero el hecho de que
la mayora de los buses son sncronos por la razn de que es ms fcil construir sistemas
sncronos. La CPU solo activa sus seales y la memoria slo reacciona a stas.

18

Arbitraje del bus:


Sabemos en forma tcita que solo hay un Bus maestro, la CPU. Pero tambin las
pastillas de E/S pueden actuar como maestros para lecturas y escrituras de memoria as
como para provocar interrupciones. Asimismo, los coprocesadores pueden convertirse en
maestros del bus. Qu sucede si dos o ms dispositivos desean actuar como bus maestros
al mismo tiempo?, las respuesta para evitar el caos, es el mecanismo de arbitraje del bus.
Este mecanismo puede Centralizado o Descentralizado. En el primer caso un solo rbitro del
bus determina qu dispositivo tiene acceso. El bus contiene una lnea de solicitud que puede
ser activada por uno o varios dispositivos en cualquier momento. No hay forma de que el
rbitro sepa cuntos dispositivos han solicitado el bus. Lo nico que distingue es : existen
solicitud(es) y no existen solicitud(es).
Cuando el rbitro recibe una solicitud para el bus, autoriza su uso activando la lnea de
respuesta del bus. Dicha lnea est conectada en serie a travs de todos los dispositivos de
E/S, como en una serie de foquitos de navidad. Cuando el dispositivo que se encuentra
fsicamente ms cerca del rbitro recibe la seal, verifica si fue l quien hizo la solicitud, en
cuyo caso hace uso del bus y evita que la seal se siga propagando. Si este dispositivo no
fue quien origin la solicitud, la seal se propaga al siguiente dispositivo en la lnea, el que
acta en la misma forma y as sucesivamente hasta que un dispositivo acepte la seal y
haga uso del bus. A este esquema se lo denomina encadenamiento margarita, y tiene la
prioridad de que los dispositivos, poseen, en efecto, prioridades asignadas dependiendo de
qu tan cerca se encuentren del rbitro. El dispositivo ms cercano tiene la prioridad ms
alta.
Al fin de evitar las prioridades implcitas basadas en la distancia del rbitro, algunos
buses tienen mltiples niveles de prioridad. Para cada nivel existe una lnea de solicitud y
una lnea de respuesta. En la prctica los buses tienen 4,8 o 16 niveles. Cada dispositivo
est conectado a algunos de los niveles de solicitud del bus, con aquellos que tienen
tiempos ms crticos conectados a las lneas con prioridades ms altas.

Ejemplo de encadenamiento margarita:


Solicitud del Bus

rbitro

Autorizacin del
bus

Dispositivos de E/S
En muchos sistemas, la CPU puede tambin competir por el bus, pero se le asigna la
prioridad ms baja y slo puede ocupar el bus cuando nadie ms lo usa. Aqu la idea es que
la CPU puede esperar mientras que los dispositivos de entrada/salida deben obtener el uso
del bus rpido o pierden los datos que estn recibiendo; girando los discos a altas
velocidades no pueden esperar.
Cuando se utiliza el arbitraje del bus descentralizado no existe un rbitro, por ejemplo,
un bus tiene 16 lneas priorizadas de Solicitud del bus, este diseo limita el nmero de
dispositivos a 16. Cuando alguno de ellos necesita el bus, activa su lnea de solicitud. Todos
los dispositivos monitorean todas las lneas de solicitud, de modo que al final de cada ciclo
de bus, cada dispositivo sabe si tiene la prioridad ms alta y de ah, se podr usar el bus
durante el ciclo siguiente. Este mtodo, comparado con el centralizado requiere de un
mayor nmero de lneas de bus, pero evita el costo potencial del rbitro.

19

Manejo de interrupciones:
Cuando la CPU instruye a algn dispositivo de E/S para que haga algo, por lo general
esperar una interrupcin cuando termine el trabajo. La seal de interrupcin indica que
requiere del Bus. Para evitar que los dispositivos quieran enviar una interrupcin al mismo
tiempo se asigna prioridades a los dispositivos, y se usa un rbitro centralizado para dar
prioridad a aquellos que tengan los tiempos ms crticos. Existen en el mercado pastillas
estndar para el control de las interrupciones y su uso est muy extendido. Las IBM-PC,
PC/AT, y todo sus clones (IBM-PC compatibles) usan una pastilla Intel 8259A.
En las entradas de Solicitud de Interrupcin, se pueden conectar en forma directa
hasta 8 pastillas controladoras de E/S. Cuando alguno de estos dispositivos desea realizar
una interrupcin, activa su lnea de la seal INT (INTerrupcin), la cual maneja
directamente la pata de interrupcin de la CPU. Cuando esta ltima est en disposicin de
manejar la interrupcin, enva un impulso a la 8259A en INTA (INTerrupcin Recibida). En
este punto, la pastilla controladora deber especificar qu dispositivo caus la interrupcin,
colocando el nmero de ste en el bus de datos. Entonces, para encontrar la direccin del
procedimiento a ejecutar para atender esa interrupcin el hardware de la CPU utiliza dicho
nmero como ndice en una tabla de apuntadores denominados vectores de interrupcin.
Dentro de la pastilla existen varios registros (por ej.: RD(lectura), WR(de escritura),
CS(seleccin de pastilla),), en donde la CPU puede leer o escribir. Una vez que el software
ha manejado la interrupcin y est lista para la siguiente, escribe una clave especial en uno
de los Registros, lo que provoca que la pastilla 8259A desactive INTR, a menos que tenga
otra interrupcin pendiente.

CANALES DE E/S
Canales o Procesadores de E/S: con ste dispositivo se quiere lograr la independencia
total con las operaciones de E/S sin que intervenga la CPU.
Lo gestiona independientemente: reconoce por si solo cul es la direccin y cul es el
perifrico y tiene un buffer que puede convertir la disparidad de capacidad de trasferencia.
Se la conoce tambin como procesador esclavo.
Caractersticas: el canal tiene su juego de instruccin propio y son autnticos
procesadores (menos potentes que el procesador central).
Funciones:
Puede seleccionar perifricos por si solo.
Puede controlar esos perifricos (comienza o finaliza la operacin)
Puede seleccionar reas de memoria donde ocurrirn las operaciones de E/S.
Tiene la posibilidad de conversin de datos cuando existe disparidad de buses.
EL MICROPROGAMA DEL CANAL: est compuesto por dos grupos de instrucciones:
1. Ejecutan operaciones de E/S y son:
De lectura y escritura.
De control de programa (bifurcacin).
De control de perifricos.
2. Instrucciones de E/S que ejecuta el procesador central:
Indica cuando se inicia y finaliza la operacin de E/S.

20

TECNOLOGA DE CANALES:
1. De conexin en serie: con procesador de E/S puede atender a varios perifricos, pero de a uno por
vez.

Placa controladora

Procesador de
E/S 1

Procesador de
E/S 2

P1

P2

P1

P3

P2

P3

Es mucho ms barata pero ms problemtica, que la matriz de conexin dinmica,


puesto que no se puede comunicar con dos perifricos que estn colgados al mismo
procesador de E/S, aunque los otros procesadores de E/S estn libres.

2. Matrz de Conexiones Dinmicas: cualquier canal puede atender a cualquier perifrico que estn
conectados a todos los canales. Su problema es que se adapta mal al crecimiento, ya que si se
aadiera un perifrico a un procesador de E/S se tendra que redisear la lgica dela matriz, ya que
cambiaria la dimensin.

Canal 1
Bus

Canal 2
Canal 3

P1

P2

P3

TIPOS DE CANALES:
Multiplexor:
Es de velocidad baja por atiende a todos los perifricos. Reparte su tiempo entre los
perifricos que estn conectados a l, tiene la posibilidad de hacer un ensamblado o
desensamblado de datos. Para realizar operaciones de E/S cada subcanal debe tener un
conjunto de registros:
UN BUFFER DE DATOS: permite almacenar los datos hasta que son transmitidos.
UN REGISTRO DE DIRECCIONES DE MEMORIA: apunta a la memoria.

21

UN REGISTRO DE ESTADO: permite conocer el estado de la transferencia.


Ensamblado: operacin de unir bytes para formar 16 bits.
Desensamblado: operacin que descompone una transmicin en bytes.

Selector
Atiende a un solo perifrico por vez. Accede a memoria solo para depositar datos
tiene:
UN REGISTRO DE DIRECCIN: que le indica de donde se deben leer o escribir los datos.
UN CONTADOR DE PALABRAS: que llegar a valer 0 cundo termine la transmisin.
UN REG.DIR.PC RIFE: que contiene la identidad del perifrico que intervendr en la operacin
de E/S.
UN REG.DE ENSAMBLADO que chequea la entrada de datos.
UN REG.DE DESENSAMBLADO que chequea errores de la salida de datos.

Multipexor por bloques:


Es una mezcla de los dos anteriores. Puede trabajar como multiplexor o selector.

Spoll:
(operaciones perifricas simultneas en lnea). El problema surge cundo varios
usuarios quieren hacer uso de la impresora. Por ejemplo al mismo tiempo, entonces tiene
que utilizarse un dispositivo Dasd (dispositivo de almacenaje de acceso directo), que tiene
la capacidad de leer y almacenar datos grandes y de mucho trabajo y, adems tienen la
particularidad de ser compartido. Como sera una mala inversin asignarle un impresora
para cada usuario se busc la manera de que cada una misma impresora stos pueden
imprimir sus trabajos, sin necesidad de esperar que otro usuario que est utilizando el
servicio lo desocupe. Para ello el sistema forma una cola de impresiones, es decir, que ste
sistema hace una administracin independiente de la impresora. Aqu se comienza a hacer
operaciones del tipo virtual (el spoll permite la impresin simultnea), de manera que
aparenta una multiprogramacin , a todo ste procedimiento se llama Spoll.
Dispositivo DASD: son dispositivos de almacenaje de acceso directo, que se utilizan para leer o
escribir datos de muchos trabajos. En l leen o escriben muchos usuarios.
Ej.:
Perifricos (imp.,discos duros)

SEVER
Usuario 1
11

Usuario 2

Usuario 3

Us. 4

22

SISTEMA OPERATIVO
Introduccin:
Ya sabemos que una computadora sin el Software es una masa metlica sin utilidad.
Con el software puede almacenar, procesar, y recuperar informacin. El Software para
computadora se clasifica en dos clases:
Programas del Sistema o Software de Base: Controla las operaciones de la
computadora en s.
Programas de Aplicacin o Software de Aplicacin: Los cuales resuelven problemas
para los usuarios.
El programa fundamental de todos los programas del Sistemas es el Sistema
Operativo (SO), que controla todos los recursos de la computadora
Y proporciona la base sobre la cul pueden escribirse los programas de aplicacin.
Un sistema de computacin moderno consta de uno o ms procesadores, memoria
principal ( o memoria central), relojes, terminales, dispositivos de E/S, discos, etc., en fin
un Sistema complejo. Si cada programador tuviera que preocuparse por la forma de
funcionamiento de las unidades de disco y con las docenas de cosas que podran salir mal,
es poco probable que pudieran escribirse muchos programas.
Para proteger a los programadores de la complejidad del Hardware se coloc un nivel
del Software por encima del Hardware con el fn de controlar todas las partes del Sistema y
presentar al usuario una interfz o MAQUINA VIRTUAL que facilite la comprensin del
programa. Este nivel del Software se llama SO.
En la figura siguiente vemos: En la parte inferior se encuentra el Hardware, el cul
consta de varias capas, la ms baja contiene los dispositivos fsicos conformados por chips,
cables, tubos de rayos catdicos, y otros dispositivos fsicos similares. La forma de
construirlos y el responsable est a cargo del Ingeniero.Electrnico.
Programas de
aplicacin
Programas de
Sistemas
Hardware

Sistema bancario

Reservacin en una lnea area

Juegos

Compiladores

Editores

Interpretes
de comandos

SO
Lenguaje de Mquina
Microprogramacin
Dispositivos fsicos

A continuacin viene un software primitivo


que controla en forma directa los
dispositivos y proporciona una interfaz ms limpia con la siguiente capa. Este software
llamado microprograma se localiza por lo general, en la memoria exclusiva para lectura. Es
en realidad un intrprete busca las instrucciones de lenguaje de mquina tales como ADD,
MOVE Y JUMP para llevarlas a cabo como una serie de pequeos pasos. Por ej.: para hacer
la instruccin ADD el microprograma debe determinar la localizacin de los nmeros que se
desean sumar, buscarlos, sumarlos y almacenar el resultado en alguna parte. El conjunto de
instrucciones que interpreta el microprograma definen al LENGUAJE DE MQUINA, que tiene
por lo general de 50 a 300 instrucciones, la mayora sirve para desplazar datos a travs de
la mquina, hacen operaciones aritmticas y comparan valores. En esta capa los
dispositivos de E/S se controlan al cargar valores en registros del dispositivo Especiales. Por
ej.: se puede ordenar a un disco que lea al cargar los valores de la direccin del disco, la
direccin de la memoria principal, el byte de conteo, y la instruccin (Read Write), en sus
registros. Ela prctica son necesarios muchos ms parmetros.
Una de las principales funciones del SO es ocultar toda esa complejidad y proporcionar
al programador un conjunto ms conveniente de instrucciones con el cul trabajar, por
ejemplo: READ BLOCK FROM FILE, es conceptualmente ms sencillo que tener que
preocuparse de los detalles de movimiento de las cabezas del disco, esperar que se
detengan, etc..
Por arriba del SO, est el resto del Software del Sistema. Aqu se encuentra el
intrprete de comandos que es el SHELL, compiladores. Editores. Es importante saber que
estos programas no forman parte del SO aunque fabricante de computadoras los

23

proporcione juntos. El SO es esa parte del Software de Base que se ejecuta en modo central
o modo de supervisin. Est protegido contra la alteracin por parte del usuario por el
Hardware (Ahora), . Los compiladores y editores se ejecutan en modo usuario. Si un usuario
no necesita utilizar un compilador particular, l est en libertad de escribir el suyo propio si
lo desea, pero no tiene la libertad de escribir su propio Controlador de Interrupciones del
disco, qu es parte del SO y que est protegido por el Hardware contra los intentos de
escritura.
Por ltimo sobre los programas del Sistema se encuentran los programas de
Aplicacin. Estos son escritos por l9s usuarios para resolver problemas particulares, como el
procesamiento de datos comerciales, juegos, o clculos de Ingenieria, etc.

QU ES UN SISTEMA OPERATIVO?
Es un conjunto de programas que tiene como propsito posibilitar que los programas
problemas evolucionen ordenadamente en el computador, resolviendo todas las situaciones
que podran no estar previstas en esos programas facilitando la explotacin del equipo e
independizando a los programadores de tareas rutinarias y complejas como por ej.:
lectura/escritura de un dispositivo perifrico, como un disco, controlar y administra el
tiempo de la CPU, ordenar la informacin a almacenar, etc..
El SO es un Sistema o conjunto de programas con fines diversos, agrupados en
Subsistemas, cada uno de los cuales cumple con una misin especfica supervisados por un
programa que cumple la funcin de control de la actividad de la CPU, denominado
SUPERVISOR.
Desde otro punto de vista lo podemos analizar como:
UNA MQUINA EXTENDIDA O MQUINA VIRTUAL, que sea ms fcil de programar que
el Hardware adyacente. El SO es un programa que oculta la verdad acerca del Hardware al
programador y presenta una agradable y sencilla visin de los archivos con su nombre, los
cuales se pueden leer o escribir en ellos, as tambin protege al programador del Hardware
del disco y presenta una sencilla interfz orientada a archivos, ocultando tambin varios
asuntos pocos agradables relacionados con las interrupciones, cronmetros, control dela
memoria y otras a caractersticas de bajo nivel.
CONTROLADOR DE RECURSOS: Supongamos qu, tres programas qu estn en
ejecucin intentaran imprimir sus salidas en forma simultnea en la misma impresora. El
resultado sera un caos. El SO ordena este caos el almacenar en el disco todas las salidas
destinadas a la impresora. Al concluir uno de los programas, el SO podra entonces copiar
su salida desde el disco hacia la impresora y si una computadora tiene varios usuarios, es
necesario mayor control y proteccin de la memoria, los dispositivos de E/S y dems
recursos, debido que con frecuencia los usuarios deben compartir recursos tales como las
unidades de cinta, como as tambin la informacin entre aquellos usuarios que trabajan
juntos.
En resumen el SO lleva un registro de la utilizacin delos recursos, dar paso a las
solicitudes de recursos, llevar la cuenta de su uso y mediar entre las solicitudes en conflicto
de los distintos programas y usuarios.

24

CONCLUSIN

25

BOLILLA II (Parte 1): EL


NIVEL DE LOGICA DIGITAL

26

INDICE
INDICE GENERAL............................................................................................1
BOLILLA I: LA COMPUTADORA..............................................................................................4
INDICE.......................................................................................................................................5
INTRODUCCIN...................................................................................................................12
LA COMPUTADORA............................................................................................................13
CONCEPTO:.........................................................................................................................13
FUNCIONES Y ACCIONES:...............................................................................................13
Para qu sirve una computadora?:.........................................................................................13
Computadora y Circuitos:......................................................................................................14
HARDWARE Y SOFTWARE: ............................................................................................14
Software: ...........................................................................................................................14
Al software se lo clasifica en dos grupos: .....................................................................14
Hardware:...........................................................................................................................15
Arquitectura - Componentes Bsicos:...................................................................................15
Unidad de Control:.............................................................................................................15
Unidad aritmtico-lgica:..................................................................................................15
Memoria:(Memoria Central)..............................................................................................15
Perifricos: ........................................................................................................................15
Ncleo de la computadora: ...............................................................................................15
BUSES DE COMPUTADORAS:.........................................................................................16
Buses sncronos y asncronos: ..............................................................................................18
Arbitraje del bus:...............................................................................................................19
Ejemplo de encadenamiento margarita:.............................................................................19
Solicitud del Bus............................................................................................................19
Dispositivos de E/S............................................................................................................19
Manejo de interrupciones:.................................................................................................20
Canales de e/s.........................................................................................................................20
TECNOLOGA DE CANALES:.......................................................................................21
TIPOS DE CANALES:.....................................................................................................21
Multiplexor: ..................................................................................................................21
Selector..........................................................................................................................22
Multipexor por bloques: ................................................................................................22
Spoll: .........................................................................................................................22
SISTEMA OPERATIVO.......................................................................................................23
Introduccin: ....................................................................................................................23
QU ES UN SISTEMA OPERATIVO?.........................................................................24
CONCLUSIN........................................................................................................................25
BOLILLA II (Parte 1): EL NIVEL DE LOGICA DIGITAL.....................................................26
INDICE.....................................................................................................................................27
INTRODUCCIN...................................................................................................................34
EL NIVEL DE LOGICA DIGITAL......................................................................................35
COMPUERTAS Y ALGEBRA BOOLEANA......................................................................35
Compuertas........................................................................................................................35
Algebra booleana...............................................................................................................37
Implementacin de funciones booleanas ..........................................................................38

27

Equivalencia entre circuitos...............................................................................................40


CIRCUITOS DIGITALES BSICOS..................................................................................44
Circuitos integrados ..........................................................................................................44
Circuitos combinacionales ................................................................................................47
Multiplexores ................................................................................................................47
Decodificadores ............................................................................................................49
Comparadores ...............................................................................................................51
Arreglos (matrices) lgicos programables ....................................................................51
Circuitos aritmticos..........................................................................................................53
Registros de corrimiento................................................................................................53
Sumadores .....................................................................................................................54
Unidades aritmticas y lgicas......................................................................................55
Relojes ..............................................................................................................................55
MEMORIA............................................................................................................................57
Biestables...........................................................................................................................57
Bieslables SR sincronizados..........................................................................................59
Biestables D sincronizados............................................................................................59
Flip-flops y registros..........................................................................................................59
Registros........................................................................................................................60
Organizacin de las memorias...........................................................................................61
Propiedades de las memorias.............................................................................................64
MICROPROCESADORES y BUSES...................................................................................66
Microprocesadores ............................................................................................................66
Buses de computadora.......................................................................................................68
Buses sncronos .................................................................................................................70
BUSES ASINCRONOS....................................................................................................73
Arbitraje del bus ................................................................................................................74
Manejo de interrupciones ..................................................................................................77
CONCLUSIN........................................................................................................................79
BOLILLA II (Parte 2): EL NIVEL DE MICROPROGRAMACIN.......................................80
INDICE.....................................................................................................................................81
INTRODUCCIN...................................................................................................................88
EL NIVEL DE MICROPROGRAMACIN .......................................................................89
REPASO SOBRE EL NIVEL DE LGICA DIGITAL .......................................................90
Registros ..........................................................................................................................90
Buses .................................................................................................................................90
Multiplexores y decodificadores .......................................................................................92
Unidades aritmticas y lgicas y registros de corrimiento ...............................................92
Relojes ..............................................................................................................................93
Memoria principal .............................................................................................................94
Encapsulado de los componentes .....................................................................................95
UNA MICROARQUITECTURA TIPICA ...........................................................................96
La ruta de datos .................................................................................................................96
Microinstrucciones ............................................................................................................98
Cronologa de las microinstrucciones .............................................................................100
Secuenciamiento de las microinstrucciones ...................................................................102
UNA MACROARQUITECTURA TIPICA .......................................................................103
Pilas .................................................................................................................................103

28

El juego de macroinstrucciones ......................................................................................107


MICROPROGRAMACIN: UN EJEMPLO ....................................................................110
El lenguaje micro ensamblador .......................................................................................110
El ejemplo de microprograma .........................................................................................111
Observaciones sobre el microprograma ..........................................................................113
Perspectivas ....................................................................................................................114
EL DISEO DEL NIVEL DE MICROPROGRAMACIN ............................................115
Microprogramacin horizontal frente a microprogramacin vertical..............................115
Nanoprogramacin ..........................................................................................................122
Mejora del rendimiento ...................................................................................................123
Memoria cach ...............................................................................................................129
CONCLUSIN......................................................................................................................134
................................................................................................................................................135
BOLILLA II (Parte 3): EL NIVEL DE MAQUINA CONVENCIONAL................................135
INDICE...................................................................................................................................136
INTRODUCCIN.................................................................................................................143
EL NIVEL DE MQUINA CONVENCIONAL.................................................................144
EJEMPLOS DEL NIVEL DE MAQUINA CONVENCIONAL........................................144
FORMATOS DE INSTRUCCIN.....................................................................................145
Criterios de diseo de formatos de instruccin................................................................146
Cdigos de operacin con extensin...............................................................................147
Ejemplos de formatos de instrucciones...........................................................................149
La PDP-11...................................................................................................................149
Direccionamiento.............................................................................................................149
Direccionamiento inmediato........................................................................................150
Direccionamiento directo.............................................................................................150
Direccionamiento de registros.....................................................................................151
Direccionamiento indirecto..........................................................................................151
Indexacin....................................................................................................................152
Direccionamiento por medio de pilas..........................................................................153
Notacin polaca inversa...........................................................................................155
Evaluacin de frmulas en la notacin polaca inversa............................................157
Algoritmo.............................................................................................................157
Algoritmo.............................................................................................................157
Ejemplos de direccionamiento.....................................................................................160
Direccionamiento en la PDP-11..............................................................................160
Tipos de Instrucciones ........................................................................................................160
Instrucciones de movimiento de datos ............................................................................161
Operaciones binarias .......................................................................................................161
Operaciones unarias ........................................................................................................162
Comparaciones y Saltos Condicionales...........................................................................164
Instrucciones de llamada a procedimiento ......................................................................166
Control de iteraciones .....................................................................................................167
Entrada / salida ................................................................................................................168
Flujo De Control .................................................................................................................173
Flujo de control secuencial y saltos ................................................................................173
Procedimientos ................................................................................................................174
Corrutinas ........................................................................................................................179
29

Desvios ............................................................................................................................182
Interrupciones .................................................................................................................183
ACCIONES DE HARDWARE ..................................................................................183
ACCIONES DE SOFTWARE ...................................................................................184
CONCLUSIN......................................................................................................................187
BOLILLA III: ARQUITECTURA DEL PROCESADOR.......................................................188
INDICE...................................................................................................................................189
INTRODUCCIN.................................................................................................................196
ARQUITECTURA DEL PROCESADOR..........................................................................197
ESTRUCTURA GENERAL...............................................................................................197
DESCRIPCIN DE LOS COMPONENTES DE UN PROCESADOR ............................197
Microprocesadores...............................................................................................................200
EJECUCIN DE LAS INSTRUCCIONES .......................................................................201
ORGANIZACIN DE LA CPU ........................................................................................202
LA UNIDAD ARITMTICA Y LGICA .........................................................................204
LA UNIDAD DE CONTROL.............................................................................................206
FASE DE BSQUEDA DE LA INSTRUCCIN .............................................................207
FASE DE BSQUEDA O ALMACENAMIENTO DEL OPERANDO ...........................207
Caso de bsqueda del operando, seguido de procesamiento: .........................................207
Caso de almacenamiento del operando: ..........................................................................208
FASE DE PREPARACIN DE LA SIGUIENTE INSTRUCCIN .................................209
INSTRUCCIN DE RUPTURA DE SECUENCIA ..........................................................209
EL CANAL..........................................................................................................................210
LAS UNIDADES PERIFRICAS .....................................................................................211
INTERRUPCIONES ..........................................................................................................211
CONCLUSIN......................................................................................................................214
BOLILLA IV: MEMORIA........................................................................................................215
INDICE...................................................................................................................................216
INTRODUCCIN.................................................................................................................223
MEMoRia ..............................................................................................................................224
DIRECCIONES DE MEMORIA .......................................................................................225
ORDENAMIENTO DE BYTES ........................................................................................226
CDIGOS CORRECTORES DE ERRORES ....................................................................227
CLASIFICACIN Y ORGANIZACIN DE LAS MEMORIAS .....................................227
PARMETROS y CARACTERSTICAS MS IMPORTANTES DE UNA MEMORIA 228
Capacidad.........................................................................................................................228
Formas de acceder a las posiciones de memoria ............................................................229
Memorias de acceso aleatorio (RAM = Ramdom Acess Memory) ............................229
Estructura de una RAM semiconductora ................................................................231
Pastillas de memoria en paralelo ........................................................................233
Memorias pasivas....................................................................................................235
Memorias de acceso serie ...........................................................................................236
Memorias asociativas ..................................................................................................238
MODOS DE DIRECCIONAMIENTO ..........................................................................239
Modo de direccionamiento directo .............................................................................239
Modo de direccionamiento indirecto ..........................................................................240
30

Modo de direccionamiento relativo ............................................................................240


Modo de direccionamiento indexado ..........................................................................242
Modo de direccionamiento por registro indirecto .......................................................243
Otros modos de direccionamiento ..............................................................................244
CONCLUSIN......................................................................................................................245
................................................................................................................................................246
BOLILLA V: EL NIVEL DEL LENGUAJE ENSAMBLADOR.............................................246
INDICE...................................................................................................................................247
INTRODUCCIN.................................................................................................................254
EL NIVEL DEL LENGUAJE ENSAMBLADOR..............................................................255
INTRODUCCIN AL LENGUAJE ENSAMBLADOR ...................................................256
Qu es un lenguaje ensamblador? .................................................................................256
Formato de una sentencia en lenguaje ensamblador .......................................................257
Comparacin entre el. lenguaje ensamblador y los lenguajes de alto nivel ...................258
Afinacin de programas ..................................................................................................259
EL PROCESO DE ENSAMBLAJE ...................................................................................261
Ensambladores de dos pasadas .......................................................................................261
La primera pasada ...........................................................................................................262
La segunda pasada ..........................................................................................................266
La tabla de smbolos .......................................................................................................267
MACrOS .............................................................................................................................269
Definicin, llamada y expansin de una macro ..............................................................269
Macros con parmetros ...................................................................................................271
Implementacin de macros en un ensamblador ..............................................................271
MONTAJE (LINKING) y CARGA ...................................................................................272
Tareas realizadas por el programa ensamblador .............................................................274
Estructura de un mdulo objeto ......................................................................................276
Tiempo de ligadura y reubicacin dinmica ...................................................................277
Enlace dinmico ..............................................................................................................279
CONCLUSIN......................................................................................................................282
BOLILLA VI (Parte 1): PERIFRICOS.................................................................................283
INDICE...................................................................................................................................284
INTRODUCCIN.................................................................................................................291
PERIFRICOS......................................................................................................................292
RESEA HISTRICA.......................................................................................................292
INTRODUCCIN ...............................................................................................................292
PERlFERICOS DE ENTRADA: ........................................................................................293
TECLADO: .....................................................................................................................293
Cuidados y advertencias..............................................................................................294
MOUSE (RATON) .........................................................................................................295
Tipos de ratones...........................................................................................................296
Ratones Inalmbricos. .............................................................................................296
Ratones Estacionarios..............................................................................................296
PANTALLAS TCTILES: ............................................................................................296
BOLAS GIRATORIAS: .................................................................................................296

31

ESCANER ......................................................................................................................296
Profundidad de color....................................................................................................296
Tipos de escner:.........................................................................................................297
Escner de mano: ....................................................................................................297
Ventaja: ...............................................................................................................297
Desventajas: ........................................................................................................297
Escner de Sobremesa: ...........................................................................................297
Ventajas: .............................................................................................................297
Desventajas: ........................................................................................................297
Escner de Rodillo:..................................................................................................297
Calibracin...................................................................................................................297
LECTORES DE CODIGO DE BARRA.....................................................................297
TABLETA DIGITALIZADORA....................................................................................298
LECTORES DE TARJETAS MAGNETICAS...............................................................298
LAPIZ OPTICO: ............................................................................................................298
PERIFERICOS DE ALMACENAMIENTO: .................................................................299
Discos...........................................................................................................................299
Discos flexibles............................................................................................................299
Fiabilidad del soporte. .............................................................................................300
Facilidad de manejo y almacenamiento. .................................................................300
1. Disco flexible de 5 1/4 pulgadas .....................................................................300
2. Disco flexible de 3 1/2pulgadas ......................................................................300
Disco duro....................................................................................................................300
Discos opticos: ............................................................................................................301
Cintas magneticas: ......................................................................................................302
DVD:............................................................................................................................302
Prestaciones del DVD: ............................................................................................303
El disco por dentro: .................................................................................................303
La compresin MPEG-2: ........................................................................................303
El futuro del DVD: .................................................................................................303
PERIFERICOS DE SALIDA: ............................................................................................304
PANTALLAS DE SISTEMAINFORMATICO (Monitor): ...........................................304
Impresoras........................................................................................................................305
Impresoras con cinta entintada: ..................................................................................305
Impresora de Bola: ..................................................................................................305
Impresoras de agujas: ..............................................................................................306
Impresoras sin cinta entintadas: ..................................................................................306
Impresoras trmicas: ...............................................................................................306
Impresoras de inyeccin de tinta: ...........................................................................306
Impresoras lser: .....................................................................................................306
Impresoras Lser de color: ......................................................................................306
PERIFERICOS DE COMUNICACION.. ..........................................................................307
MODEM..........................................................................................................................307
Aspectos tcnicos.........................................................................................................307
Como usar la Tecnologa 56K ................................................................................307
CONCLUSIN....................................................................................................................308
CONCLUSIN......................................................................................................................309
BOLILLA VI (PARTE 2): TCNICAS Y DISPOSITIVOS DE ENTRADA SALIDA...........310
INDICE...................................................................................................................................311

32

INTRODUCCIN.................................................................................................................318
TECNICAS Y DISPOSITIVOS DE ENTRADA / SALIDA (Input / Ouput)..................319
Dispositivos de fichas y de banda perforada.......................................................................319
Dispositivos de soporte magntico......................................................................................323
Impresoras............................................................................................................................323
Plotter...................................................................................................................................330
La pantalla............................................................................................................................331
Terminales...........................................................................................................................332
Procesos de comunicacin para la transmisin de datos a distancia...................................334
Otros perifricos..................................................................................................................334
Tcnicas de entrada/salida (input/output)............................................................................335
Polling (interrogatorio de trfico) ...................................................................................336
Interrupciones (interrupts) ..............................................................................................338
Transferencia DMA ........................................................................................................339
GLOSARIO.........................................................................................................................340
CONCLUSIN......................................................................................................................342
CONCLUSIN FINAL..............................................................................................................343
BIBLIOGRAFA .......................................................................................................................344

33

INTRODUCCIN

34

APUNTES DE CATEDRA
CARRERA:
Ctedra:
Profesor:
AO:

LICENCIATURA EN ANALISIS DE SISTEMAS


INGENIERIA EN SISTEMAS
Procesamiento De Datos I
Lic. Marcelo Martinez
2003

EL NIVEL DE LOGICA DIGITAL


En el nivel jerrquico inferior de la figura 1-2 se encuentra el nivel de lgica digital,
que es el verdadero hardware de la computadora. En este captulo examinaremos muchos
aspectos de la lgica digital como elemento bsico para el estudio de los niveles superiores,
comentados en los captulos siguientes. El presente estudio har nfasis en las
microcomputadoras, no slo porque son fciles de comprender sino porque se estn
volviendo cada vez ms importantes.
Los elementos bsicos con que se construyen las computadoras digitales son
asombrosamente simples. Empezaremos nuestro estudio examinando estos elementos
bsicos y el lgebra especial de dos valores (lgebra de Boole) que se usa para analizarlos.
Luego estudiaremos algunos circuitos fundamentales que pueden construirse usando
combinaciones simples de compuertas, incluyendo algunos que realizan operaciones
aritmticas. En seguida veremos cmo pueden combinarse las compuertas para almacenar
informacin, es decir, cmo se organizan las memorias. Despus abordaremos el tema de
las CPU, con especial atencin a la forma en que las CPU integradas en una pastilla de silicio
se conectan con la memoria y los dispositivos perifricos.

COMPUERTAS Y ALGEBRA BOOLEANA


Los circuitos digitales pueden construirse a partir de un nmero pequeo de elementos
primitivos combinndolos en innumerables formas. En las siguientes secciones se
describirn tales elementos, se mostrar cmo pueden combinarse
stos y se presentar una poderosa tcnica matemtica til para analizar su
comportamiento.

Compuertas
Un circuito digital es aquel en el que estn presentes dos valores lgicos. Por
convencin, una seal entre 0 y 1 volt representa un valor (por ejemplo, el 0 binario) y una
entre 2 y 5 volts representa el otro (por ejemplo, el 1 binario). No se permiten voltajes
fuera de esos dos rangos. Unos pequeos dispositivos electrnicos, denominados
compuertas, pueden calcular varias funciones de estas seales de dos valores. Las
compuertas forman la base material con que se
construyen las computadoras digitales. Los detalles de cmo funcionan por dentro las
compuertas estn fuera del alcance de este libro, ya que pertenecen a un nivel inferior al 0,
el nivel de dispositivo. Sin embargo, se dar un breve vistazo a la idea bsica de suyo
sencilla. Toda la lgica digital moderna descansa en el hecho de que se puede hacer
funcionar un transistor como si fuera un conmutador binario muy rpido. En la figura 3-1(a)
aparece un transistor bipolar (el crculo) que forma parte de un circuito sencillo. Este
transistor tiene tres conexiones con el mundo exterior: el colector, la base y el emisor.
Cuando el voltaje de entrada Ve est por debajo de cierto valor crtico, el transistor se corta,
actuando como una resistencia infinita, y hace que la salida del circuito, Vs , tome un valor
prcticamente igual a Vcc, un voltaje regulado por fuera, por lo comn de + 5 volts. Cuando

35

Ve exceda del valor critico, el transistor conmutar, actuando como un conductor perfecto y
haciendo que Vs tome el valor de tierra (por convencin, 0 volts).
Lo importante es darse cuenta de que, cuando V e est alto, Vs est bajo y viceversa. El
circuito es por tanto un inversor, que convierte el 0 lgico en 1 lgico y el 1 lgico en 0
lgico. La resistencia es necesaria para limitar la corriente que fluye por el transistor. El
tiempo necesario para conmutar de un estado a otro suele ser de unos pocos
nanosegundos.
En la figura 3-1 (b) se han puesto dos transistores en serie. Si las tensiones V1 y V2
fueran altas simultneamente, ambos transistores conduciran y Vs bajara. Si cualquiera de
las entradas estuviera con la tensin baja, el transistor correspondiente se cortara y la
salida quedara alta. En otras palabras, Vs estar baja si tanto V1 como V2 estn altas.
En la figura 3-1(c) los dos transistores se conectan en paralelo, en lugar de conectarse
en serie. En esta configuracin, si alguna de las salidas es alta, el transistor correspondiente
conducir y llevar la salida hacia tierra. Si ambas entradas estuvieran bajas, la salida
permanecera alta.
Estos tres circuitos, o sus equivalentes, forman las tres compuertas ms simples. Se
denominan compuertas NOT, NAND y NOR respectivamente. Las compuertas NOT se suelen
denominar inversores. Si se adopta la convencin de
que "alto" (Vcc volts) es el 1 lgico y "bajo" (tierra) el 0 lgico, se puede expresar el
valor de salida en funcin de los de entrada. Los smbolos convencionales utilizados para
dibujar estas tres compuertas se muestran en la figura 3-2(a)-(c), junto con el
comportamiento funcional de cada circuito.

Si la seal de salida de la figura 3-1(b) se introduce en un inversor, tendramos otro


circuito que sera el inverso de la compuerta NAND, siendo su salida 1 si y slo si ambas
entradas son 1. Este circuito se llama compuerta Y o AND y su smbolo y descripcin
funcional se dan en la figura 3-2( d). De manera similar, la compuerta NOR puede
conectarse a un inversor para obtener un circuito cuya salida sea 1, si alguna o ambas
entradas es 1 y 0 si ambas son 0. La figura 3-2(e) muestra el smbolo y la descripcin
funcional de esta compuerta, denominada compuerta OR. Los pequeos crculos que forman
parte de los smbolos del inversor, la compuerta NAND y la compuerta NOR se llaman
burbujas de inversin y suelen tambin usarse en otros contextos para expresar una seal
invertida.
Las cinco compuertas de la figura 3-2 son los elementos principales para la
construccin del nivel de lgica digital. De la explicacin anterior debi quedar en claro que
las compuertas NAND y NOR requieren dos transistores cada una, mientras que las AND y
OR requieren tres. Por esa razn, muchas computadoras estn basadas en compuertas
NAND y NOR y no en las ms familiares AND y OR. (En la prctica, las compuertas se
realizan en una forma algo diferente, pero las NAND y NOR son an ms simples que las

36

AND y OR.) Tambin se usan abundantemente compuertas de ms de dos entradas. En


principio, una compuerta NAND, por ejemplo, puede tener un nmero arbitrario de
entradas, aunque en la prctica no suelen tener ms de ocho.

Aunque el tema de cmo se hacen las compuertas pertenece al nivel de dispositivo, se


describirn las familias tecnolgicas ms importantes, debido a que se mencionan con
frecuencia. Las dos tecnologas ms importantes son la bipolar y la MOS (Metal-OxidoSemiconductor). Entre las bipolares estn la Lgica de Transistor- Transistor (llamada TTL),
que ha sido durante aos el material de trabajo de la electrnica digital, y la Lgica
Acoplada por Emisor (denominada ECL), que se usa cuando se necesita gran velocidad.
Las compuertas MOS son 10 veces ms lentas que las TTL y 100 veces ms que las
ECL pero no necesitan casi energa ni espacio, por lo que pueden empaquetarse en forma
muy compacta. Hay muchas variedades de compuertas MOS, entre las que estn las
designadas por las siglas PMOS, NMOS, CMOS y otras que van apareciendo da tras da.

Algebra booleana
Para describir los circuitos que se pueden construir combinando compuertas, se
necesita un nuevo tipo de lgebra en que las variables y las funciones slo puedan tomar
los valores 0 y 1. Como esta lgebra fue inventada por el matemtico ingls George Boole
(1815-1864), se le denomina lgebra de Boole o lgebra booleana. En rigor, en realidad nos
referimos aun tipo especfico de lgebra booleana denominada lgebra de conmutacin; sin
embargo, el trmino "lgebra booleana" se usa tan ampliamente con el significado de
"lgebra de conmutacin", que no haremos distincin alguna.
As como hay funciones en el lgebra "ordinaria" (la que se imparte en la escuela
secundaria), tambin hay funciones en el lgebra de Boole. Una funcin booleana toma una
o varias variables de entrada y da por resultado un valor que depende slo de ellas. Una
funcin sencilla, f, puede definirse diciendo que f (A) es 1 si A es 0 y f(A) es 0 si A es 1.
Esta funcin es la funcin NOT de la figura 3-2(a).
Una funcin booleana de n variables slo tiene 2" conjuntos posibles de valores de
entrada, por lo que puede especificarse completamente como una tabla de 2 n filas,
indicando cada una de ellas el valor de la funcin para una combinacin determinada de los
valores de entrada. Esta tabla se denomina tabla de verdad. Las tablas de la figura 3-2 son
ejemplos de tablas de verdad. Si se toma el acuerdo en listar siempre las filas de una tabla
de verdad en el orden numrico (base 2), esto es, para dos variables, en el orden 00, 01,
10 y 11, la funcin puede describirse completamente por el nmero de 2 n bits obtenido al
leer verticalmente la columna de resultado de la tabla de verdad. As, NAND es 1110, NOR
es 1000, AND es 0001 y OR es 0111. Evidentemente, slo existen 16 funciones booleanas
de dos variables, correspondientes alas 16 posibles combinaciones de 4 bits. Por el
contrario, el lgebra ordinaria tiene infinitas funciones de dos variables y ninguna de ellas
puede describirse dando una tabla de resultados de todas las combinaciones posibles de las

37

entradas, ya que cada variable puede tomar un nmero infinito de valores.


La figura 3-3(a) muestra la tabla de verdad de una funcin booleana de tres variables:
M = f (A, B, C). Es la funcin mayora; es decir, es 0 si la mayora de sus entradas es 0, y 1
si la mayora es 1. Aunque todas las funciones booleanas pueden especificarse dando su
tabla de verdad, a medida que el nmero de variables crece esta notacin se hace ms y
ms engorrosa. Por ello, se suele usar otro tipo de notacin.
Para entender cmo se origina esta otra notacin, obsrvese que cualquier funcin
booleana puede especificarse diciendo qu combinaciones de las variables de entrada dan el
valor 1. En la funcin de la figura 3-3(a), hay cuatro combinaciones que hacen que M valga
1. Por convencin se pone una barra sobre la variable de entrada cuyo valor sea 0. La
ausencia de la barra significar que vale 1. Adems, se usa la multiplicacin implcita o el
punto para significar Y o AND y el smbolo + para significar O u OR. As, por ejemplo, ABC
significa que A = 1, B = 0 y C = 1. Tambin, AB + BC significa que A = 1 y B = 0, o que B
= 1 y C = 0. Las cuatro filas de la figura 3-3(a) que producen 1 en sus salidas son: ABC,
ABC, ABC y ABC. La funcin M es cierta si se cumple cualquiera de esas condiciones, por lo
que se puede escribir
M = ABC + ABC + ABC + ABC
como una forma compacta de dar la tabla de verdad. As, una funcin de n variables
puede describirse como una "suma" de, como mximo, 2 n trminos "producto" de n
variables. Esta formulacin, es muy importante, como se ver en seguida, debido a que
lleva en forma directa a su realizacin usando compuertas ordinarias.

Implementacin de funciones booleanas


Como ya se mencion, la formulacin de una funcin booleana como suma de hasta 2n
trminos productos lleva directamente a una de las implementaciones posibles. Puede verse
cmo se lleva a cabo esta realizacin por medio del ejemplo de la figura 3-3. En la parte (b)
de la figura vemos las entradas A, B y C a la izquierda y la salida M a la derecha. Como se
necesitan los complementos de las entradas, se los genera conectando a las entradas los
inversores 1, 2 y 3. Para no enmaraar la figura, se han dibujado seis lneas verticales, tres
de ellas conectadas a las variables de entrada y las otras tres a sus complementos. Las
lneas tienen una disposicin conveniente para usarlas como entradas de las compuertas
ulteriores. Por ejemplo, las compuertas 5, 6 y 7 usan A como entrada. En un circuito real
probablemente estas compuertas se conectaran directamente a A, sin necesidad de hilos
"verticales" intermedios.
El circuito contiene cuatro compuertas Y, una para cada trmino de la ecuacin ( es
decir, uno por cada fila de la tabla de verdad con un 1 en la columna de resultado). Cada
compuerta y calcula una fila de la tabla de verdad, como se indic antes. Finalmente todos
los trminos se pasan por una compuerta OR para obtener el resultado final.
El circuito de la figura 3-3(b) usa una convencin que se necesitar repetidamente en
todo el libro: cuando se crucen dos lneas, se supondr que no estn conectadas a menos
que est dibujado un punto grueso en la interseccin. Por ejemplo, la salida de la
compuerta 3 cruza las seis lneas verticales, pero slo est conectada a C. Sin embargo,
otros autores usan convenciones diferentes.
En el ejemplo de la figura 3-3 se aprecia con toda claridad cmo se realiza un circuito
para cualquier funcin booleana:
1. Se escribe primero la tabla de verdad de la funcin.
2. Se generan los complementos de las entradas por medio de inversores.
3. Se dispone una compuerta Y o AND para cada trmino que tenga un 1 en la
columna de resultado.
4. Se conectan las entradas apropiadas a las compuertas AND.
5. Se conectan todas las salidas de las. compuertas AND a una compuerta OR.

38

39

Aunque se ha mostrado cmo realizar cualquier funcin booleana con compuertas


AND, OR y NOT, suele ser preferible realizar los circuitos con un solo tipo de compuerta.
Afortunadamente es muy fcil convertir los circuitos generados por el algoritmo anterior en
otros con slo compuertas NAND o NOR. Para hacer esa conversin, lo nico que se
necesita es una forma de realizar las funciones NOT, AND y OR empleando un nico tipo de
compuerta. La fila de arriba de la figura 3-4 muestra como se pueden realizar las tres
funciones exclusivamente con compuertas NAND, mientras que la fila de abajo indica cmo
hacerlo con compuertas NOR. (Estas son formas directas, pero no son las nicas
posibilidades; vase la figura 3-5.)
Una forma de implementar una funcin booleana usando slo compuertas NAND y
NOR consiste en seguir primero el procedimiento sealado anteriormente para construirla
con compuertas NOT, AND y OR. Luego, se procede a reemplazar las compuertas de
entrada mltiple con circuitos equivalentes, utilizando compuertas de dos entradas. Por
ejemplo, A + B + C + D puede calcularse como (A+B)+(C+D), usando tres compuertas O
de dos entradas. Finalmente, se sustituyen las compuertas NOT, AND y OR por los circuitos
de la figura 3-4.
Aunque este procedimiento no da lugar a circuitos ptimos, en el sentido de un
mnimo nmero de compuertas, s muestra que siempre es posible una solucin. Se dice
que las compuertas NAND y las NOR son completas porque a partir de ellas puede
generarse cualquier funcin booleana. Ningn otro tipo de compuertas tiene esa propiedad,
siendo sta una razn ms por la que se prefieren como elemento bsico en la construccin
de circuitos.

Equivalencia entre circuitos


Los diseadores de circuitos naturalmente intentan reducir el nmero de compuertas
para disminuir el costo de los componentes, el espacio de circuito impreso, el consumo de
energa, etc. Para reducir la complejidad de un circuito, el diseador debe encontrar otro
que calcule la misma funcin que el original con menos compuertas (o quiz con
compuertas ms simples; por ejemplo, compuertas de dos entradas en lugar de cuatro). El
lgebra de Boole puede ser una herramienta muy til en la bsqueda de circuitos
equivalentes.

40

He aqu un ejemplo de cmo puede usarse el lgebra de Boole: considrese el circuito


y la tabla de verdad para AB + AC, que se muestran en la figura 3-5(a). Aunque an no se
ha hablado de ello, muchas de las reglas del lgebra ordinaria se conservan en el lgebra de
Boole. En particular, AB + AC puede escribirse como A (B + C), utilizando la propiedad
distributiva. En la figura 3-5(b) aparece el circuito y la tabla de verdad de A(B + C). Como
dos funciones son equivalentes si y slo si dan la misma salida para todas las entradas
posibles, es fcil ver en las tablas de verdad de la figura 3-5 que A(B + C) es equivalente a
AB+AC. Adems de la equivalencia, el circuito de la figura 3-5(b) es claramente mejor que
el de la figura 3-5(a) porque contiene menos compuertas.
En general, un diseador puede representar un circuito como una funcin booleana y
aplicar despus el lgebra de Boole a esta representacin para tratar de encontrar una
equivalente ms simple, que servir para construir el nuevo circuito.
Para aplicar este mtodo necesitamos algunas identidades del lgebra de Boole. La
figura 3-6 muestra las ms importantes. Es interesante constatar que cada propiedad tiene
dos formas duales. Se puede producir una forma a partir de la otra intercambiando AND y
OR, y tambin 0 y 1. Todas las propiedades se pueden demostrar construyendo sus tablas
de verdad. Exceptuadas las leyes de Morgan, la propiedad de absorcin y la forma AND de
la propiedad distributiva, las dems pueden obtenerse por intuicin. La ley de Morgan se
extiende a ms variables; por ejemplo, ABC = A + B + C.
La ley de Morgan sugiere una notacin alternativa. En la figura 3- 7(a) se muestra la
forma AND, indicndose la inversin tanto en las entradas como en la salida, por medio de
burbujas de inversin. As, una compuerta OR con las entradas invertidas es equivalente a
una compuerta NAND. En la figura 3- 7(b), a partir de la forma dual de la ley de Morgan,
vemos que una compuerta NOR puede dibujarse como una compuerta y con sus entradas
negadas. Negando ambas formas de la ley de Morgan llegamos a las figuras 3- 7(c) y (d),
que muestran representaciones equivalentes de las compuertas AND y OR. Existen smbolos
anlogos de la ley de de Morgan con variables mltiples (por ejemplo, una compuerta NANO
de n entradas se convierte en una OR con n entradas negadas).

41

Usando las identidades de la figura 3-7 y las anlogas para las compuertas de varias
entradas, se hace mucho ms fcil convertir la representacin de la suma de productos de
la tabla de verdad en una forma con slo compuertas NANO o slo compuertas NOR. Para
ilustrar lo anterior consideremos la funcin OR EXCLUSIVO de la figura 3-8(a). El circuito
como suma de productos se muestra en la figura 3-8(b). Para convertirlo a forma NAND,
deben dibujarse dos burbujas de inversin en cada una de las lneas que conectan las
compuertas ANO con la compuerta OR, como se muestra en la figura 3-8(c). Finalmente,
usando la figura 3- 7(a), llegamos a la figura 3-8(d). Las variables A y B pueden generarse
a partir de A y B usando compuertas NAND o NOR con sus entradas conectadas entre s.
Ntese que las burbujas de inversin pueden moverse por una lnea a voluntad; por
ejemplo, de las salidas de las compuertas de entrada de la figura 3-8(d) a las entradas de la
compuerta de salida.
Antes de dar por terminado el tema de la equivalencia entre circuitos, se demostrar
el hecho sorprendente de que una misma compuerta fsica puede calcular funciones
diferentes conforme a las convenciones utilizadas. En la figura 3-9(a) se muestra la salida
de cierta compuerta, F, para diferentes combinaciones de entrada. Tanto las entradas como
las salidas se dan en volts. Si adoptamos la convencin de que 0 volts es un 0 lgico y de
que 5 volts es un 1 lgico, denominado lgica positiva, obtendremos la tabla de verdad de
la figura 3-9(b) y la funcin AND. Por el contrario, si adoptamos la convencin de lgica
negativa, es decir, aquella en que 0 volts representan el 1 lgico y 5 volts el 0 lgico, la
tabla de verdad que obtendremos ser la de la figura 3-9(c), correspondiente a la funcin
OR.

42

Por tanto, la convencin empleada para asignar valores lgicos a las tensiones es de
suma importancia. En adelante, si no se dice lo contrario utilizaremos lgica positiva, de
modo que los trminos 1 lgico, cierto y alto sern sinnimos, as como 0 lgico, falso y
bajo.

43

CIRCUITOS DIGITALES BSICOS


En las secciones anteriores se vio cmo realizar tablas de verdad por medio de
circuitos con compuertas individuales. Actualmente ya no se construyen los circuitos
compuerta por compuerta, aunque antao fue prctica comn. Hoy da, los elementos
bsicos son mdulos que contienen cierto nmero de compuertas. En las secciones
siguientes se examinarn esos elementos bsicos en detalle y se vern cmo se usan y
cmo pueden construirse a partir de compuertas individuales.

Circuitos integrados
Las compuertas no se fabrican ni se venden individualmente, sino en unidades
llamadas circuitos integrados, chips o pastillas. Una pastilla es un pedazo de silicio
cuadrangular de unos 5 x 5 mm en el que se han depositado algunas compuertas.
Normalmente las pastillas se montan en unas cpsulas cermicas o de plstico de 5 a 15
mm de ancho y de 20 a 50 mm de largo. A lo largo de sus bordes mayores se sitan dos
filas paralelas de patas metlicas de unos 5 mm de largo, que pueden insertarse en
soportes o soldarse a circuitos impresos. Cada pata se conecta a una entrada o a una salida
de alguna compuerta de la pastilla, a la corriente elctrica o a tierra. Las cpsulas con dos
filas de patas fuera y una pastilla dentro reciben el nombre tcnico de DIP (siglas inglesas
que significan encapsulado de dos hileras en lnea); pero todo el mundo las llama pastillas,
confundiendo as la distincin entre la pieza de silicio y su envoltorio. Las cpsulas ms
usuales tienen 14, 16, 18, 20, 22, 24, 28, 40,64 o 68 patas. En algunas aplicaciones
especiales se utilizan cpsulas con patas en los cuatro lados.
Las pastillas pueden dividirse en varios grupos, con base en el nmero de compuertas
que contienen, segn se describe abajo. Este esquema de clasificacin es en extremo
burdo, pero a veces til. El limite superior de los circuitos VLSI se encuentra entre 1 y 2
millones de transistores.
SSI (circuitos integrados a escala pequea): 1 a 10
M SI (circuitos integrados a escala media): 10 a 100
LSI (circuitos integrados a escala grande): 100 a 100 000
VLSI (circuitos integrados a escala muy grande): ms de 100 000

Estas clases tienen propiedades diferentes y se usan de manera distinta. Un circuito


SSI suele contener de dos a seis compuertas, cada una de las cuales puede usarse
individualmente, como se hizo en las secciones. anteriores. La figura 3-10 ilustra una
pastilla SSI tpica que contiene cuatro compuertas NAND. Cada una de ellas tiene dos
entradas y una salida, lo que implica la necesidad de 12 patas para las cuatro. Adems, la

44

pastilla necesita alimentacin (por lo general 5 volts, denotada Vcc) y tierra, que son
compartidas por todas las compuertas. Generalmente la cpsula tiene una muesca cerca de
la pata 1, con lo que se facilita su identificacin. Para evitar que los diagramas de circuitos
se enmaraen, normalmente no se muestran ni la alimentacin ni la tierra ni las
compuertas no utilizadas.
La figura 3-11 muestra otras pastillas SSI comunes. Pertenecen a la serie 7400, de
tecnologa TTL, desarrollada por Texas Instruments y producida por muchos fabricantes de
semiconductores. Se utilizan principalmente para construir circuitos sencillos que no podran
realizarse de otra manera. El circuito de la figura 3-3(b) podra construirse con una 7404,
dos 7411 y una 7432. En la serie 7400 no hay compuertas OR de cuatro entradas, pero
puede obtenerse la misma funcin haciendo el OR de dos entradas por un lado, el OR de las
otras dos por el otro y, de nuevo, haciendo el OR de los dos resultados anteriores. Esto
puede representarse simblicamente por la expresin A + B + C + D = (A + B)+(C + D), es
decir, A y B hacen el OR juntos al igual que C y D por su parte, y estas dos sumas hacen el
OR tambin a su vez. Si el circuito de la figura 3-3(b) se construyera realmente de esta
manera, el circuito impreso donde se montaran debera tener pistas metlicas conectando
las patas apropiadas. Algunas compuertas no se usaran. La pastilla 7486 contiene una
compuerta que no se ha mostrado hasta ahora; es la puerta OR EXCLUSIVO, que es
equivalente al circuito de la figura 3-8.

45

Para nuestros propsitos, todas las compuertas sern ideales, en el sentido de que la
salida aparece en el mismo momento en que se aplican las entradas. En realidad, las
pastillas tienen un retardo de compuerta finito, que incluye el tiempo de propagacin de la
seal a travs del circuito y el tiempo de conmutacin. Los retardos suelen durar de 1 a 20
nanoseg. En los esquemas suelen verse nmeros como 74S00, 74LOO, 74HOO y 74LSOO.
Representan pastillas funcionalmente equivalentes, pero con diferentes compromisos de
retardo, potencia y precio. La serie 74COO es de pastillas CMOS funcionalmente
equivalentes a las de la serie 7400, de tecnologa TTL.
Hoy da es posible poner casi un milln de compuertas en una pastilla. Como todo

46

circuito puede construirse con puertas NAND, cabra pensar que un fabricante puede
fabricar una pastilla muy general con el equivalente a 250 000 pastillas como la 7400. Por
desgracia, dicha pastilla necesitara 3 000 002 patas. Con el espaciado ordinario de 2.5 mm
entre patas, la pastilla debera medir cerca de 3.2 kilmetros, algo muy difcil de vender.
Est claro que, para poder aprovechar la tecnologa, hay que disear circuitos cuyo cociente
de compuertas/patas sea muy alto. En las secciones siguientes examinaremos algunos
circuitos MSI sencillos que combinan internamente cierto nmero de compuertas para
obtener una funcin til con slo unas pocas conexiones externas (patas). Despus
examinaremos dos aplicaciones que requieren miles de compuertas (LSI) con slo 20 a 40
patas: memorias y microprocesadores. La lnea divisoria entre los circuitos LSI y los VLSI es
vaga, pero una pastilla VLSI clsica puede tener un microprocesador grande, algo de
memoria en una u otra forma, y quiz, una unidad de propsito especfico, como la unidad
aritmtica de punto flotante.

Circuitos combinacionales
Muchas aplicaciones de la lgica digital requieren un circuito de varias entradas y
varias salidas, de modo que las salidas estn determinadas nicamente por el valor
instantneo de las entradas. Estos circuitos se llaman circuitos combinacionales. No todos
los circuitos tienen esa propiedad. Por ejemplo, un circuito que contenga elementos de
memoria puede generar salidas que dependan tanto de los valores de entrada como de los
almacenados. Un ejemplo tpico de circuito combinacional es uno que realice una tabla de
verdad, como la de la figura 3-3(a). En esta seccin, como ejemplo de pastillas MSI,
examinaremos algunos circuitos combinacionales usados con frecuencia.

Multiplexores
En el nivel de lgica digital, un multiplexor es un circuito de 2n entradas de datos, una
salida de datos y n entradas de control que seleccionan una de las entradas de datos. El
dato de entrada seleccionado es el que aparece en la salida. La figura 3-12 muestra un
esquema de un multiplexor de ocho entradas. Las tres lneas de control, A, B y C, codifican
un nmero de 3 bits que especfica qu lnea de las ocho de entrada pasa a la compuerta
OR y de ah a la salida. Independientemente de los valores de las lneas de control, siete de
las compuertas, AND siempre darn una salida 0; la otra puede dar 0 o 1, segn sea el
valor de la lnea de entrada que se seleccione. Cada combinacin de las entradas de control
permite el paso de informacin por una sola de las compuertas AND.

47

El circuito de la figura 3-12 es un candidato ideal para realizarlo como pastilla MSI,
como se ilustra en la figura 3-13(a). Dicha pastilla tiene ocho entradas de datos, tres de
control y una salida. Aadiendo la alimentacin y la tierra, la pastilla se puede montar en un
chip de 14 patas. Con ella se puede realizar el circuito de la figura 3-3(b), como se muestra
en la figura 3-13(b). Para cada combinacin de A, B y C, se selecciona una de las lneas de
datos de entrada, que est conectada a la alimentacin (1 lgico) o a la tierra (0 lgico). El
algoritmo de conexin de las entradas es trivial: la entrada D i se conecta al valor que indica
la fila i de la tabla de verdad. En la figura 3-3(a), las filas 0, 1, 2, y 4 son 0, por lo que las
entradas correspondientes se conectan a tierra; las restantes son 1 y se conectan al 1
lgico. De esta manera se puede realizar cualquier tabla de verdad de tres variables,
usando la pastilla de la figura 3-13(a).

48

Ya se vio cmo se puede usar una pastilla multiplexora para seleccionar una entrada
entre varias y para realizar una tabla de verdad. Otra de sus aplicaciones es la de
convertidor de paralelo a serie. Si se pone un dato de 8 bits en las lneas de entrada y se
van variando las lneas de control en forma secuencial desde 000 hasta 111 (en binario),
aparecern en la salida los 8 bits de la entrada en serie. El uso tpico de un convertidor de
paralelo a serie es en un teclado, donde cada vez que se pulsa una tecla, se genera un
nmero de 7 u 8 bits que debe enviarse en serie por una lnea telefnica.
El circuito MSI de la figura 3-13(a) tiene ocho entradas de datos. Tambin los hay en
el mercado de 16, as como pastillas con dos multiplexores independientes de cuatro
entradas o con cuatro de dos. Algunos de ellos proporcionan la salida seleccionada y su
complemento, y algunos tienen tambin una entrada adicional que fuerza la salida a 0,
independientemente de las entradas (esto es, una pata de habilitacin o deshabilitacin).
El inverso del multiplexor es el demultiplexor, que encamina una nica entrada a una
de las 2n salidas posibles, segn sean los valores de n lneas de control. Si el valor binario
situado en las lneas de control es k, se selecciona la salida k.

Decodificadores
Otro ejemplo de pastilla MSI es un circuito que toma un nmero de n bits como
entrada y los usa para seleccionar (es decir, para poner a 1) exactamente una de sus 2n
salidas posibles. Este circuito se llama un decodificador y la figura 3-14 ilustra uno de ellos
para n = 3.

49

A fin de ver en qu casos puede ser til un decodificador, imaginemos una memoria
de ocho pastillas de 8K cada una. La pastilla 0 tiene las direcciones 0 a 8191, la 1 tiene
desde 8192 hasta 16383, y as sucesivamente. Cuando se presenta una direccin a la
memoria, se usan sus tres bits ms significativos para seleccionar una de las ocho pastillas.
Si se usa el circuito de la figura 3-14, esos tres bits son las entradas A, B y C. Segn sean
ellas, exactamente una de las ocho salidas, Do, ..., D7, se hace 1, y las otras permanecen a
0. Cada una de las salidas activa una de las ocho pastillas de memoria. Como nicamente
una de las salidas se pone al, slo se selecciona una pastilla.
El funcionamiento del circuito de la figura 3-14 es muy simple. Cada compuerta AND
tiene tres entradas, de las cuales la primera es A o A, la segunda es B o B, y la tercera C o
C. Por tanto, cada compuerta se activa (da salida 1) con una sola de las combinaciones de
entrada posibles: Do con ABC, Di con ABC, y as sucesivamente.
En el mercado hay pastillas decodificadoras de 4 a 16, de 3 a 8 y dobles de 2 a 4 (es
decir, dos decodificadores de 2 a 4 en la misma pastilla). Adems, son comunes los
decodificadores de 4 a lO, para decodificar nmeros decimales codificados en binario.

50

Comparadores
Otra pastilla MSI muy til es el comparador, que compara dos palabras de entrada. El
comparador sencillo de la figura 3-15 toma dos entradas, A y B, cada una de 4 bits, y
produce un I1si son iguales y 0 si son distintas. El circuito est basado en la compuerta OR
EXCLUSIVO, que da 0 si las entradas son iguales y 1 si son distintas. Si las dos palabras son
iguales, las cuatro compuertas OR EXCLUSIVO deben dar 0. Despus se pueden pasar estas
cuatro salidas por una compuerta OR, que dar 0 si las palabras son iguales y 1 si son
diferentes. En nuestro ejemplo hemos usado una compuerta NOR en la etapa final para
invertir el sentido de la comparacin:1 significa igual y 0 desigual. Las pastillas disponibles
comercialmente no slo tienen salidas para A = E, sino tambin para A<B y para A>B.

Arreglos (matrices) lgicos programables


Se vio antes que podan construirse funciones arbitrarias (tablas de verdad)
calculando los trminos producto con puertas AND y pasando todos stos por una
compuerta OR. Una pastilla muy general para realizar sumas de productos es el arreglo
lgico programable ( designado tambin por sus siglas inglesas PLA), que se muestra en la
figura 3-16. Esta pastilla, la 74S330, tiene lneas de entrada para 12 variables.
Internamente se genera el complemento de cada una de ella, haciendo un total de 24
seales de entrada. El corazn del circuito lo forma un conjunto de 50 compuertas AND
cada una de las cua1es puede tener como entrada cualquier subconjunto de las 24 seales
de entrada. El usuario determina qu entrada va a qu compuerta AND por medio de una
matriz de 24 x 50. Cada lnea de entrada a las 50 compuertas AND contiene un fusible.

51

Estos 1200 fusibles vienen intactos de fbrica. Para programar la matriz, el usuario
funde los fusibles que desee aplicando una tensin alta a la pastilla.
La parte de salida del circuito consta de 6 compuertas OR de 50 entradas,
correspondientes a las salidas de las 50 compuertas AND. Aqu hay tambin otra matriz,
esta vez de 50 x 6, por medio de la cual el usuario determina qu conexiones realizar. La
pastilla tiene 12 patas de entrada y 6 de salida, adems de la alimentacin y la tierra, lo
que hace un total de 20 patas.
Para ilustrar con un ejemplo el uso de una PLA, consideremos una vez ms el circuito
de la figura 3-3(b). Tiene tres entradas, cuatro compuertas AND, una compuerta OR y tres
inversores. Nuestra PLA puede calcular esta funcin con slo hacer las conexiones internas
apropiadas, usando tres de sus 12 entradas, cuatro de sus 50 compuertas AND y una de sus
6 compuertas OR. (Las cuatro compuertas AND deben calcular ABC, ABC, ABC, y ABC,
respectivamente, mientras que la compuerta OR debe tomar estos cuatro trminos para
calcular la salida.) De hecho, se puede usar la misma PLA para que calcule simultneamente
hasta cuatro funciones de complejidad similar. Para funciones sencillas, el nmero est
limitado por el nmero de variables de entrada. Para las ms complicadas, la limitacin
depender probablemente del nmero de compuertas AND u OR.
Aunque las PLA programables descritas todava estn en uso para muchas

52

aplicaciones, en otras son preferibles las PLA hechas "a medida" para cierto cliente (para
aplicaciones de gran volumen) y fabricadas bajo las especificaciones del cliente. Estas PLA
son ms baratas que las programables.
Ahora podemos comparar los tres mtodos que ya hemos visto y que sirven para
implementar la tabla de verdad de la figura 3-3(a). Usando componentes SSI, necesitamos
cuatro pastillas. Tambin nos bastara una pastilla multiplexora MSI, como se muestra en la
figura 3-13(b). Por ltimo, podramos usar la cuarta parte de una pastilla PLA.
Evidentemente, si se necesitan muchas funciones, el mtodo ms eficiente de los tres es la
PLA. Para circuitos simples, es preferible utilizar pastillas ms baratas como las SSI o las
MSI.

Circuitos aritmticos
Es el momento de pasar de los MSI de uso general a los aritmticos. Empezaremos
por un sencillo registro de corrimiento; despus veremos cmo pueden construirse
sumadores, y finalmente examinaremos las unidades aritmticas y lgicas, que
desempean un importante papel en cualquier computadora.

Registros de corrimiento
Nuestro primer circuito MSI aritmtico es un registro de corrimiento de 8 entradas y 8
salidas (vase figura 3-17). El dato de 8 bits se presenta en las entradas D0, ..., D7 y se
obtiene desplazando un bit en las salidas S0, ...,S7. La lnea de control C, determina el
sentido del desplazamiento: si es 0, el corrimiento es a la izquierda, si es 1, a la derecha.

Para ver cmo funciona, obsrvense los pares de compuertas AND para todos los bits
excepto los de los bordes. Cuando C = 1, se abre la compuerta derecha de cada par,
pasando el bit correspondiente a su salida. Como la compuerta AND derecha est conectada
a la entrada de la compuerta OR de su derecha, se obtiene un desplazamiento a la derecha.
Cuando C = 0, el que se abre es el miembro de la izquierda del par de compuertas AND,
efectundose un desplazamiento a la izquierda.

53

Sumadores
No se puede imaginar una computadora que no sume enteros. En consecuencia, una
parte esencial de una CPU son los circuitos para realizar la adicin. La figura 3-18(a)
muestra la tabla de verdad de un circuito para sumar 1 bit. La funcin tiene dos salidas: la
suma de las entradas A y B, y el acarreo a la siguiente posicin (a la izquierda). La figura 318(b) muestra un circuito que realiza la suma y el acarreo. Este circuito se conoce por
semisumador.
Aunque el semisumador sirve para sumar los dos bits menos significativos de dos
palabras de varios bits, no funciona en una posicin intermedia, debido a que no tiene en
cuenta el acarreo que proviene de su derecha. Lo qu se necesita es el sumador completo
de la figura 3-19. Como se ve, el sumador completo puede construirse con dos
semisumadores. La salida Suma estar a 1 si hay un nmero impar de entradas (A, B y
Acarreo de entrada) a 1. La salida Acarreo de salida estar a 1 si A y B estn a 1 (entrada
de la izquierda de la puerta OR) o bien slo una de ellas est a 1 y el Acarreo de entrada
tambin lo est. Los dos semisumadores juntos generan tanto la suma como los bits de
acarreo.

54

Para construir un sumador de, digamos, palabras de 16 bits, es necesario repetir 16


veces el circuito de la figura 3-19(b). El acarreo de salida de uno de ellos se usa como
acarreo de entrada del siguiente. El acarreo de entrada al de la derecha se deja conectado a
0. Este tipo de sumador se llama sumador con propagacin de acarreo, debido a que en el
ltimo de los casos; sumar 1 a 111...111 (binario), no puede obtenerse el resultado hasta
que el acarreo se haya propagado desde el bit de la derecha al de la izquierda. Tambin
existen sumadores que no tienen este retardo y, por tanto, son ms rpidos.

Unidades aritmticas y lgicas


La mayora de las computadoras tienen un circuito nico para realizar, al menos, las
operaciones AND, OR y suma de dos palabras de mquina. Uno de estos circuitos para
procesar dos palabras de n bits suele construirse a partir de n circuitos idnticos, cada uno
de los cuales procesa el par de bits de mismo peso de cada una de las palabras de entrada.
La figura 3-20 es un ejemplo de uno de esos circuitos, denominado Unidad Aritmtica y
Lgica o ALU. Puede calcular una de las cuatro funciones siguientes: A AND B, A OR B, B, o
A + B, segn las lneas de seleccin de funcin, F0 y F1, que contengan (en binario) 00, 01,
10 o 11, respectivamente.
La esquina inferior izquierda de nuestra ALU contiene un decodificador de 2 bits que
genera las lneas de habilitacin para las cuatro operaciones a partir de F 0 y F1. La esquina
superior izquierda tiene la lgica para calcular A AND B, A OR B y B, pero a lo sumo uno de
estos resultados puede pasar a la compuerta OR final, dependiendo de las lneas de
habilitacin que vienen del decodificador. Como slo una de las salidas del decodificador
estar a 1, slo se permitir el paso a travs de una de las compuertas AND que estn
conectadas a la puerta OR; las tres restantes darn 0, independientemente de A y B.
La esquina inferior derecha tiene un sumador completo para calcular la suma de A y B,
teniendo en cuenta los acarreos, porque es probable que varios de, estos circuitos se
conecten en paralelo para realizar las operaciones sobre la palabra completa. Existen
circuitos como el de la figura 3-20, y se les conoce como rebanadas de un bit. Con estos
circuitos el diseador puede construir ALU del tamao deseado.
La figura 3-21 muestra un ALU de 1 bit. Existen circuitos que contienen mdulos de 8
bits para simplificar el diseo y reducir el nmero de circuitos. Para construir un ALU de 32
bits se pueden conectar cuatro de estos circuitos.

Relojes
En muchas computadoras digitales, el orden en que tienen un lugar los eventos es
crtico. Algunas veces un evento debe preceder a otro, mientras que otros deben realizarse
simultneamente. Para permitir a los diseadores satisfacer las relaciones de tiempo,
muchos circuitos digitales utilizan relojes para su sincronizacin. Un reloj en este contexto,
es un circuito que emite una serie de impulsos de un ancho y una separacin determinadas
con precisin. El intervalo entre los flancos de subida o bajada de dos pulsos consecutivos
se llama tiempo de ciclo del reloj. Normalmente las frecuencias de los pulsos estn entre 1 y
100 MHz, correspondientes a ciclos de reloj entre 1000 nseg a 10 nseg. La frecuencia del
reloj suele controlarse por medio de un oscilador a cristal, para obtener una gran precisin.

55

En una computadora pueden suceder muchas cosas durante un solo ciclo de reloj. Si
tuvieran que realizarse esos eventos en un orden especifico, sera necesario dividir el ciclo
de reloj en subciclos. Un mtodo bastante comn de obtener una resolucin ms fina que la
del reloj bsico consiste en conectar a la lnea del reloj un circuito con un retardo conocido,
generando as un segundo reloj desfasado respecto al principal, como se muestra en la
figura 3-22(a). El diagrama de tiempos o cronograma de la figura 3-22(b) proporciona
cuatro referencias de tiempo para eventos discretos:
1. Flanco de subida de REL1
2. Flanco de bajada de REL1
3. Flanco de subida de REL2
4. Flanco de bajada de REL2

56

Puede obtenerse la secuencia de sucesos deseada asocindolos a los diversos flancos.


Si se necesitaran ms de cuatro referencias de tiempo durante un ciclo, se podran aadir
ms lneas con retardos diferentes.
En algunos circuitos uno se interesa ms por los intervalos de tiempo que por
instantes discretos de tiempo. Por ejemplo, puede permitirse que un evento suceda cada
vez que REL1 est alto, en lugar de que ocurra precisamente en el flanco de subida. Otro
evento puede ocurrir slo cuando REL2 est alto. Si se necesitan ms de dos intervalos,
pueden proporcionarse ms lneas de reloj, o los estados altos de ambos relojes pueden
traslaparse parcialmente en el tiempo. En este ltimo caso se pueden distinguir cuatro
diferentes intervalos: REL1 Y REL2 , REL1 Y REL2, REL1 Y REL2 y REL1 Y REL2.
Como nota al margen, probablemente debamos puntualizar que la figuras 3-22(a)-(b)
estn realmente algo simplificadas. Los relojes reales son simtricos, con la duracin del
intervalo alto igual a la del intervalo bajo, como la seal A en la figura 3-22(c). Para generar
un tren de impulsos asimtricos, se desplaza el reloj bsico por medio de un circuito de
retardo, obtenindose B. Al final se pasan A y B por una compuerta AND para obtener REL.
Esta es la seal mostrada como REL1 en la figura 3-22(b). REL2 puede generarse
retrasando REL1.

MEMORIA
Un componente esencial de toda computadora es su memoria. Sin ella no podra haber
computadoras como las conocemos. Se usa para guardar las instrucciones a ejecutar y sus
datos. En las secciones siguientes examinaremos los componentes bsicos de una memoria,
empezando al nivel de compuertas para ver como funcionan y como se combinan para
obtener memorias grandes.

Biestables
Para crear una memoria de un bit, es necesario un circuito que "recuerde" sus valores
de entrada anteriores. Un circuito as puede construirse con dos compuertas NOR, como se
ve en la figura 3-23(a). Se pueden construir circuitos anlogos con compuertas NAND. No
los mencionaremos en adelante, ya que son conceptualmente idnticos a las versiones NOR.
El circuito de la figura 3-23(a) se llama biestable SR. Tiene dos entradas, S, para
ponerlo a 1, y R, para ponerlo a 0. Tambin tiene dos salidas, Q y Q, que son

57

complementarias, como veremos en breve. En contraste con los circuitos combinacionales,


las salidas del biestable no estn determinadas nicamente por los valores instantneos de
las entradas.

Para ver cmo sucede esto, supongamos que S y R estn en 0, lo cual ocurre casi
siempre. Supongamos que, adems, Q = 0. Como Q est realimentada a la compuerta NOR
de arriba, sta tiene ambas entradas a 0, por lo que su salida, Q(negado), est a 1. Este 1
es realimentado a la puerta de abajo, que tiene entradas 1 y 0, obtenindose Q = 0. Este
estado es, por lo menos, consistente y es el dibujado en la figura 3-23(a).
Imaginemos ahora que Q no es 0 sino 1, estando todava R y S a 0. La compuerta
superior tiene 1 y 0 como entradas y una salida, Q (negado), de 0, que es realimentada a la
compuerta inferior. Este estado, que se muestra en la figura 3-23(b), tambin es
consistente. Un estado con ambas salidas a 0 es inconsistente, porque forzara a ambas
compuertas a tener dos ceros como entradas; de ser cierto esto, producira unos y no ceros
como salidas. De modo similar, es imposible que ambas salidas sean iguales a 1, porque
forzara las entradas a 0 y 1, obtenindose 0 y no 1. Nuestra conclusin es simple: si R = S
= 0, el biestable tiene dos estados estables, que llamaremos 0 o 1, dependiendo de Q.
Examinemos ahora el efecto de las entradas en el estado del biestable. Supongamos
que S se hace 1 mientras Q = 0. Las entradas a la compuerta superior son 0 y 1, forzando
una salida de 0. Este cambio hace que ambas entradas de la compuerta inferior sean 0,
forzando una salida de 1. Por tanto, el hacer S igual al 1 conmuta del estado 0 al 1. El poner
la entrada R a 1 cuando el estado es 0 no tiene efecto, ya que la salida de la compuerta
inferior es la misma con entradas 10 que con 11.

Con un razonamiento similar, es fcil ver que si se pone S a 1 en el estado 1 nada


ocurre, pero si se pone R a 1, el biestable se coloca en estado 0. En resumen, cuando S se
pone a 1 momentneamente, el biestable termina en el estado 1, sin tomar en cuenta el
estado en que estuvo antes. De modo similar, cuando R se pone momentneamente a 1, el
biestable pasa a estado 0. El circuito "recuerda" si la ltima entrada que estuvo a 1 fue R o
S. Esta propiedad puede emplearse para construir memorias de computadora.

58

Bieslables SR sincronizados
A menudo es conveniente impedir que un biestable cambie de estado excepto en
ciertos momentos especficos. Para conseguirlo, modificamos ligeramente el circuito, como
se muestra en la Figura 3-24, obtenindose un biestable SR sincronizado. Este circuito tiene
una entrada adicional, el reloj, que normalmente est a 0. Con el reloj a 0 ambas
compuertas AND dan 0, independientemente de S y R, y el biestable no cambia de estado.
Cuando el reloj es 1, el efecto de las puertas Y desaparece y el biestable se hace sensible a
S y a R. A pesar de su nombre, la seal de reloj no tiene por qu estar manejada por un
reloj. Cuando la seal de reloj est a 1, se suele decir que el biestable est habilitado o
activado, es decir, que es sensible a S y a R.
Hasta ahora hemos esquivado cuidadosamente el problema de lo que sucede cuando
tanto S como R son 1 a la vez. Y por una buena razn: el circuito se vuelve no determinista
cuando R y S vuelven a 0. El nico estado consistente para S = R = 1 es Q = Q = 0, pero
tan pronto como las entradas vuelven a 0, el biestable puede ponerse en cualquiera de los
dos estados estables. Si alguna de las entradas vuelve a 0 antes que la otra, gana la que
est ms tiempo a 1, ya que durante ese pequeo instante hay una sola entrada a 1 y
fuerza el estado correspondiente. Si ambas entradas se pusieran a 0 simultneamente (lo
que es muy improbable), el bienestar se situara al azar en cualquiera de sus estados
estables.

Biestables D sincronizados

Una forma de resolver la ambigedad de los biestables SR es estar seguros de que no


ocurrir. La figura 3-25 muestra un biestable con una sola entrada, D. Como la entrada a la
compuerta AND inferior es siempre el complemento de la entrada a la superior, nunca se
presentar el problema de ambas a 1. Cuando D = 1 y el reloj est a 1, el biestable pasar
a estado 1. Cuando D = 0 y el reloj est a 1 tambin, el biestable pasar a 0 lgico. Dicho
de otro modo, cuando el reloj est a 1, se muestrear el valor actual de D y se guardar en
el biestable. Este circuito, denominado biestable D sincronizado, es una verdadera memoria
de un bit. El valor almacenado est siempre disponible en Q. Para cargar el valor actual de
D en memoria, hay que enviar un impulso positivo por la lnea de reloj.

Flip-flops y registros
En muchos circuitos es necesario muestrear el valor de cierta lnea en un instante
determinado y almacenarlo. En principio, esto se podra hacer con un biestable D
sincronizado, mandando un impulso muy corto por la lnea de reloj en el momento de
muestrear. En la prctica, puede ser difcil la generacin de impulsos muy cortos, por lo que
se ha desarrollado un tipo distinto de biestables. Se denominan flip-flops o biestables
accionados por flanco, y en ellos la transicin tiene lugar no cuando el reloj es 1, sino
durante la transicin de 0 a 1 o de 1 a 0. As , la duracin del impulso de reloj no tiene
importancia, siempre que las transiciones ocurran con rapidez.
Es importante insistir en la diferencia entre un flip-flop y un biestable. Un flip-flop se
dispara por flanco mientras que un biestable se dispara por nivel. Es necesario tener

59

cuidado, pues en la literatura tcnica a menudo se confunden los trminos; muchos autores
usan flip-flop para referirse a biestables y viceversa.

Los smbolos utilizados normalmente para los biestables disparados por nivel y por
flanco se muestran en la figura 3-26. La figura 3-26(a) representa un biestable D accionado
por nivel, cuyo estado se guarda cuando el reloj, CK, es 1, mientras que el de la figura 326(b) tiene en forma normal el reloj a 1 y hay que bajarlo a 0 momentneamente para
tomar el estado de D, Las figuras 3-26(c) y (d) son flip-flops, distinguindose de los
anteriores por el smbolo puntiagudo de las entradas de reloj. La figura 3-26(c) cambia su
estado con el flanco de subida de reloj (transicin de 0 a 1), mientras que la figura 3-26(d)
lo cambia con el de bajada (transicin de 1 a 0). Muchos biestables tienen adems la salida
Q y algunas entradas de Puesta a 1 y de Puesta a 0 o Borrado.

Registros
Los flip-flops estn disponibles en varias configuraciones. En la figura 3-27 (a) se
muestra una de las ms simples, con dos biestables D independientes con seales de
borrado (CLR) y puesta a 1 (OR). Aunque estn en el mismo chip de 14 patas, ambos flipflops son independientes. La figura 3-27(b) muestra una disposicin algo diferente, con
ocho flip-flops. A stos no slo les faltan las lneas Q y de puesta a 1, sino que adems
todas sus entradas de reloj estn juntas y conectadas a la pata 11. Cada uno de ellos es del
tipo de la figura 3-26(d). Pero las burbujas de inversin se cancelan con el inversor
conectado a la pata 11, por lo que se cargan con el flanco de subida. Tambin todas las
seales de borrado estn conectadas, por lo cual si la pata 1 se pone a 0 fuerza a todos los
biestables a ponerse a 0. En el caso de que al lector le parezca sorprendente que la pata 11
se invierta una vez a su entrada y oir en cada seal CK, la explicacin es que una seal de
entrada quiz no pueda atacar los ocho biestables y se usa el inversor de entrada como
amplificador.
Es evidente que la razn por la cual se juntan las lneas de reloj y borrado en la figura
3-27(b) es ahorrar patas, pero esto lleva a que el uso a que se puede destinar la pastilla
sea distinto del que tendran ocho flip-flops independientes. Se utiliza como un registro de 8
bits. As, tambin pueden usarse dos de estas pastillas para realizar un registro de 16 bits
conectando entre si las patas 1 y 11 respectivas. Se ver con ms detalle el uso de los
registros en el capitulo 4.
A medida que avanzamos, vamos viendo que la escasez de patas lleva al diseo de
pastillas con un cociente compuertas/patas cada vez mayor. El sencillo biestable D de la
figura 3-25 requiere cinco compuertas, por lo que una pastilla con ocho de ellos, anloga a
la de la figura 3-27(b), necesitar 57, incluyendo los ocho inversores para CK y los ocho
para CLR. Un flip-flop es ms complejo internamente que un biestable accionado por nivel,
por lo que la figura 3-27(b) representa el equivalente a unas 100 puertas, lo que es
bastante ms complejo que las sencillas pastillas SSI de la figura 3-11. En la siguiente
seccin estudiaremos una organizacin distinta de las pastillas de memoria, que permita un
cociente compuertas/patas mucho mayor.

60

Organizacin de las memorias


Aunque hemos progresado desde la simple memoria de 1 bit de la figura 3-25 a la de
8 bits de la figura 3-27(b), no podemos seguir por este camino, debido a la falta de patas
en las pastillas. Cada biestable requiere dos patas, D y Q, adems de las de control
compartidas por todos. Para construir memorias grandes se requiere una organizacin
distinta.
Lo que se necesita es un diseo en que el nmero de patas crezca en relacin
logartmica con la capacidad de memoria, en lugar de hacerlo en forma lineal. Una
organizacin de memorias muy extendida que cumple ese criterio es la de la figura 3-28.
Este ejemplo ilustra una memoria de cuatro palabras de tres bits. Cada operacin lee o
escribe una palabra completa de 3 bits. Aunque la capacidad de esta memoria de 12 bits es
algo mayor que la de nuestro registro de 8, necesita menos patas y, lo que es ms
importante, el diseo se generaliza fcilmente para memorias grandes.
Aunque a primera vista la memoria de la figura 3-28 parece complicada, en realidad
es bastante simple, debido a su estructura regular. Tiene ocho lneas de entrada y tres de
salida. De las de entrada, tres son de dato: DE0, DE1 y DE2; dos de direccin: DIR0, y DIR1;
y tres de control: CS para seleccionar la pastilla, RD para distinguir la lectura de la escritura
y OE para permitir la salida. Las lneas de salida son para los datos: DS 0, DS1 y DS2. En
principio, poda ponerse esta memoria en un chip de 14 patas, incluyendo la alimentacin y
la tierra, frente a las 20 del registro de ocho biestables.
61

Se necesita una lgica externa que ponga CS en alto para seleccionar la pastilla, as
como para poner RD a alto (1 lgico) para leer, o abajo (0 lgico) para escribir. Las dos
lneas de direccin deben ajustarse para que indiquen cul de las cuatro palabras de tres
bits ha de leerse o escribirse. En una operacin de lectura no se usan las lneas de datos de
entrada, pero en las de salida aparece la palabra seleccionada. En una escritura, en cambio,
no se usan las lneas de datos de salida, pero se recoge el dato de las de entrada y se
guarda en la posicin de memoria seleccionada.
Examinemos ahora de cerca la figura 3-28 para ver cmo funciona. Las cuatro
compuertas AND de seleccin de palabra de la izquierda forman un decodificador. Los
inversores de sus entradas se han ubicado de manera que se habilite (salida en alto) cada
una de las compuertas con una direccin distinta. Cada compuerta alimenta una lnea de
seleccin de palabra, la de arriba para la palabra 0, la siguiente hacia abajo para la 1, etc.
Cuando se seleccione la pastilla para escritura, la lnea vertical etiquetada CS-RD estar en
alto, habilitando a una de las cuatro compuertas de escritura, segn la lnea de seleccin de
palabra que est en alto. La salida de la compuerta de escritura mueve todas las seales CK
de la palabra seleccionada, cargando los datos de entrada en los flip-flops de la misma. Slo
se escribe si CS est en alto y RD en bajo, y slo en la palabra seleccionada por DIR0 y
DIR1; las restantes permanecen sin ser alteradas.

62

La lectura es similar a la escritura. La decodificacin de direcciones es idntica. Pero


ahora la lnea CS RD est en bajo, por lo que se deshabilitan todas las compuertas de
escritura y no se modifica ningn biestable. En cambio, la lnea de seleccin de palabra
elegida habilita las compuertas AND conectadas a las salidas Q de la palabra seleccionada.
Por tanto, una palabra pasa sus datos a las compuertas OR de cuatro entradas de la parte
inferior de la figura, mientras que a las otras tres palabras les pasan ceros. En
consecuencia, la salida de las compuertas OR es idntica al valor guardado en la palabra
seleccionada. Las tres palabras no seleccionadas no contribuyen a la salida.
Aunque podra haberse diseado un circuito en que las salidas de las compuertas OR
se llevarn directamente a las lneas de salida, a veces eso causa problemas. En particular,
se ha sealado que las lneas de datos de entrada y de salida son diferentes, pero en las
memorias reales son las mismas. Si se hubieran conectado las compuertas OR a las lneas
de salida, la pastilla intentara sacar datos, es decir, forzar cada lnea a un valor especifico,
incluso en escritura, interfiriendo en esa forma con los datos de entrada. Por esta razn, es
deseable tener algn modo de conectar las compuertas OR con las lneas de datos de salida

63

en las lecturas, pero desconectarlas por completo en las escrituras. Lo que necesitamos es
un conmutador electrnico que pueda abrir o cerrar una conexin en unos pocos
nanosegundos.
Por fortuna tales conmutadores existen. La figura 3-29(a) muestra el smbolo de lo
que se llama un buffer no inversor. Tiene una entrada de dato, una salida de dato y una
entrada de control. Cuando la entrada de control est en alto, el buffer acta como un hilo
elctrico, como se ve en la figura 3-29(b). Cuando la entrada de control est a nivel bajo,
acta como un circuito abierto, como se muestra en la figura 3-29(c); es como si alguien
hubiera desconectado la salida de datos del resto del circuito con cortacables. Sin embargo,
a diferencia de lo que ocurre con un cortacables, la conexin puede restaurarse en pocos
nanosegundos volviendo a poner la entrada de control a nivel alto.

La figura 3-29(d) muestra un buffer inversor, que acta como un inversor normal
cuando el control est en alto y desconecta la salida cuando est en bajo. Ambos tipos de
buffers son dispositivos triestado, porque pueden dar 0, 1 o nada (circuito abierto). Los
buffers tambin amplifican las seales, por lo que pueden manejar muchas entradas a la
vez. Por esta razn, se les usa en circuitos, aunque no se necesiten sus propiedades de
conmutador.
Volviendo al circuito de memoria, podemos ahora entender para qu sirven los tres
buffers no inversores de las lneas de salida. Cuando CS, RD y OE estn en alto, la seal de
habilitacin de salida tambin estar en alto, habilitando los buffers y poniendo una palabra
en las lneas de salida. Cuando cualquiera de las seales CS, RD, o OE est en bajo, las
salidas de datos se desconectarn del resto del circuito.

Propiedades de las memorias


Lo ms interesante de la memoria de la figura 3-28 es que se generaliza con facilidad
para tamaos mayores. Tal como est dibujada, la memoria es de 4 x 3, es decir, de 4
palabras de 3 bits cada una. Para extenderla a 4 x 8 slo tendramos que aadir cinco
columnas ms de cuatro biestables cada una, as como cinco lneas de entrada y cinco de
salida. Para ir de 4 x 3 a 8 x 3 deberemos aadir cuatro filas ms de tres biestables cada
una, as como una lnea de direccin adicional, DIR2. Con esta clase de estructura, el
nmero de palabras debera ser una potencia de dos, para que la eficiencia sea mxima; sin
embargo, el nmero de bits por palabra puede ser cualquiera.
Como la tecnologa de circuitos integrados es muy adecuada para hacer pastillas con
una estructura interna repetitiva en dos dimensiones, las memorias son aplicaciones ideales
de aqulla. A medida que esta tecnologa se perfecciona, aumenta el nmero de bits que
pueden meterse en una pastilla, cuadruplicndose aproximadamente cada 3 o 4 aos. En
los primeros aos de la dcada de los setenta las pastillas tenan 1K bits; ms tarde,
tuvieron sucesivamente 4K, 16K, 64K, 256K, etc. En 1990 ya eran comunes las memorias
con 4 millones de bits. No siempre las pastillas de ms capacidad vuelven obsoletas a las de
menos, debido a las interrelaciones entre capacidad, velocidad, consumo, precio y
conveniencia de interconexin.
Para un tamao de memoria dado, existen varias formas de organizar la pastilla. En la
figura 3-30 se aprecian dos posibles organizaciones para una pastilla de tamao mediano
(256K-bit): 32K x 8 y 256K x 1. En la primera, se necesitan 15 lneas para direccionar el
64

byte seleccionado y ocho lneas para cargar y almacenar los datos. En la segunda, se
necesitan 18 lneas para direccionar el bit seleccionado, pero slo una lnea para sacar los
datos. En ambos casos se requiere de lneas para distinguir lecturas de escrituras y para la
seleccin de la pastilla. La lnea OE representa la habilitacin de salida; cuando tiene un
valor de 0, hay una salida presente, y cuando es 1, no la hay (v.g., la salida est
desconectada del circuito). La lnea WE representa la habilitacin de escritura. Las barras
colocadas sobre OE, WE y CS significan que la seal est activada en un estado de voltaje
bajo (0 lgico) en lugar de alto (1 lgico). Esta convencin se ver en detalle ms adelante.

Ntese que para construir una memoria con una palabra de memoria de 16 bits a
partir de pastillas de 256K x 1, se requiere de 16 pastillas en paralelo obteniendo una
capacidad total de por lo menos 512K bytes, mientras que usando pastillas de 32K x 8 slo
se requiere de dos pastillas en paralelo y permite construir memorias tan pequeas como de
64K bytes.
Las memorias que hemos estudiado hasta ahora pueden utilizarse para leer o escribir.
Se suelen denominar memorias vivas o RAM (siglas inglesas para memoria de acceso
aleatorio); este ltimo nombre es bastante inadecuado puesto que todas las pastillas de
memoria son accesibles en forma aleatoria, pero el trmino ya se ha arraigado. Hay dos
variedades de memorias RAM: las estticas y las dinmicas Las RAM estticas se construyen
a partir de circuitos similares a nuestro biestable D bsico. Tienen la propiedad de retener
su contenido tanto tiempo como estn conectadas a la fuente de alimentacin, sean
segundos, minutos, horas o aun das.
Las RAM dinmicas, por el contrario, no usan circuitos biestables como los estudiados,
sino que estn construidas como un conjunto de pequeos condensadores, que pueden
estar cargados o descargados. Como la carga elctrica tiende a fugarse, cada bit de la RAM
dinmica debe refrescarse cada pocos milisegundos, para impedir la prdida de su
informacin. Como el cuidado del refresco debe encomendarse a lgica externa, las RAM
dinmicas son ms difciles de interconectar que las estticas, aunque en muchas
aplicaciones esta desventaja est compensada por su mayor capacidad. Algunas memorias
dinmicas tienen la lgica de refresco en la propia pastilla, dando as gran capacidad y
facilidad de conexin a los circuitos. Estas pastillas se denominan casi estatuas.
Las RAM no son los tarcos tipos de pastillas de memoria. En muchas aplicaciones,
65

como juguetes, electrodomsticos y automviles, los programas, los programas y parte de


los datos deben permanecer aun cuando se desconecte la alimentacin. Adems, una vez
instalados, ni el programa ni esos datos van a cambiarse nunca. Estos requisitos llevaron al
desarrollo de las memorias fijas o ROM (siglas inglesas para memoria de slo lectura), que
no pueden cambiarse de ninguna manera. Los datos se graban durante la fabricacin de la
ROM, que consiste esencialmente en la exposicin a la luz de un material fotosensible a
travs de una mscara con la configuracin deseada de bits. Despus se disuelve la parte
expuesta a la luz (o la no expuesta) La nica manera de cambiar un programa en ROM es
sustituir la pastilla por otra.
Las ROM son mucho ms baratas quejas RAM cuando se piden en grandes cantidades,
para amortizar el precio de hacer la mscara. Sin embargo son inflexibles, ya que no
pueden cambiarse despus de su fabricacin y el plazo de entrega desde que se encargan
hasta que se reciben puede abarcar varias semanas. Para facilitar a las empresas el
desarrollo de productos basados en ROM se invent otro tipo de memoria muerta
denominado PROM (ROM programable) Esta pastilla es como una ROM, excepto en que
puede programarse (una sola vez) reduciendo as el plazo en que pueden tenerse grabadas.
El siguiente avance en esta tinca fue la EPROM (PROM borrable), que no slo puede
programarse sino tambin borrarse. Cuando la ventana de cuarzo de una EPROM se expone
a luz ultravioleta potente durante unos 15 minutos. todos sus bits se ponen a 1. Si se
espera hacer muchos cambios en el ciclo de diseos las EPROM son mucho ms econmicas
que las PROM porque pueden reutilizarse.
An mejores que las EPROM son las EEPROM (EPROM elctricamente borrables)
tambin llamadas EAROM (ROM elctricamente alterables), que pueden borrarse mediante
impulsos elctricos, sin necesidad de que las introduzcan en un receptculo especial para
exponerlas a luz ultravioleta. Las EEPROM difieren de las RAM en que el tiempo necesario
para grabar o borrar un byte es miles de veces mayor, a pasar de que los tiempos de
acceso en lectura de las ROM, PROM, EEPROM y RAM son similares (al mximo unas
centenas de nanosegundos).

MICROPROCESADORES Y BUSES
Con la informacin acerca de las pastillas de memoria en sus diferentes escalas de
integracin, se puede abordar ahora el tema principal de este captulo; los
microprocesadores. En esta seccin se vern algunos de los aspectos generales de los
microprocesadores desde el punto de vista de la lgica digital, incluyendo el significado de
las seales asociadas a cada terminal. Tambin se proporcionar una introduccin al diseo
de buses, en virtud de la estrecha relacin que existe entre stos y algunos
microprocesadores y se darn ejemplos detallados de ambos en las siguientes secciones.

Microprocesadores
Para los fines de este libro, se usar el trmino "microprocesador" para denominar a
cualquier CPU contenida en una sola pastilla, aun cuando algunas de ellas tengan la
arquitectura y el poder de cmputo de pequeas macrocomputadoras. Esta definicin est
basada en el empacado de componentes, la que la hace apropiada para el nivel de la lgica
digital que se estudia.
Se decidi tratar las CPU de una sola pastilla por una buena razn: su relacin con el
resto del sistema se encuentra bien definida. Una pastilla de microprocesador tpica tiene
entre 40 y 132 patas, a travs de las cuales se establece su relacin con el mundo exterior.
Algunas patas envan seales de la CPU, otras aceptan seales del exterior y algunas
realizan ambas funciones. Si se entiende la funcin de cada una de las patas, se aprende
cmo interacciona la CPU con la memoria y los dispositivos de E/S al nivel de lgica digital.
Aunque lo que sigue se refiere especficamente a los microprocesadores, las ideas bsicas
(por ejemplo, cmo la CPU hace referencia a la memoria, cmo se conectan los dispositivos
de E/S, etc.) tambin son vlidas para las minicomputadoras y, en cierta medida, para las
macrocomputadoras, aunque de una manera algo diferente.
Las patas de una pastilla de microprocesador pueden dividirse en tres tipos: direccin,
66

datos y control. Estas, estn conectadas a patas similares en las pastillas de memoria y de
entrada/salida por medio de un conjunto de alambres paralelos denominados bus. Para
extraer una instruccin, el microprocesador pone primero la direccin de memoria de dicha
instruccin en las patas de direccionamiento. En seguida (por lo general), activa la lnea de
control para informar a la memoria que desea leer una palabra. La memoria responde
poniendo la palabra solicitada en las patas de datos del microprocesador y activando una
seal que indica que lo hizo. Cuando el microprocesador observa esta seal, acepta la
palabra y lleva a cabo la instruccin. La instruccin puede requerir a su vez leer o escribir
palabras de datos, en cuyo caso se repite todo el proceso para cada palabra adicional. Ms
adelante se ver cmo funcionan la lectura y la escritura, pero, por el momento, lo
importante es entender que la CPU se comunica con la memoria y con los dispositivos
perifricos presentando y aceptando seales a travs de sus patas. No es posible realizar
otro tipo de comunicacin. Cabe hacer aqu una aclaracin en cuanto a la terminologa. En
algunas patas, una seal alta (+5 volts) provoca que se realice una accin; en otros, sta
se produce por una seal baja. A fin de evitar confusiones, para indicar que una seal tiene
un valor para provocar alguna accin diremos que est activada (en vez de decir que tiene
un valor alto o bajo). De esta manera, en algunos casos activar las seales significa darles
un valor alto, mientras que para otras significa que tomen un valor bajo. Las patas que son
activadas cuando el valor es bajo se les asignan nombres con una barra encima. As, WRITE
est activada alto, en tanto que WRITE est activada bajo. El trmino opuesto es
desactivado y se usa para indicar ausencia de accin. Cuando no ocurre ninguna accin en
particular, se dice que las patas estn desactivadas o negadas.
Dos parmetros clave que determinan el desempeo de un microprocesador son el
nmero de patas de direccionamiento y el nmero de patas de datos. Una pastilla con m
patas de direccionamiento puede direccionar hasta 2m bytes de memoria. Valores comunes
para m son: 16, 20, 24 y 32. En forma similar, una pastilla con n patas de datos puede leer
o escribir en una sola operacin palabras de memoria de n bits. Los valores comunes para n
son: 8, 16 y 32. Para leer una palabra de 32 bits, un microprocesador de 8 patas de datos
requiere de cuatro operaciones, mientras que uno con 32 patas lo puede hacer en una sola
operacin. De ah que este ltimo sea mucho ms rpido, aunque tambin invariablemente
ms caro.
Adems de las patas de direccin y datos, cada microprocesador tiene algunas patas
de control, las cuales sirven para regular los tiempos y el flujo de los datos desde y hacia el
microprocesador, as como otras varias funciones. Todo microprocesador tiene terminales
para alimentacin (normalmente + 5 V), tierra fsica y para la seal de reloj (una onda
cuadrada); el resto de las patas vara mucho dependiendo de la pastilla. No obstante, las
patas de control pueden agruparse grosso modo en las siguientes categoras principales:
1.
Control del bus
2.
Interrupciones
3.
Arbitraje del bus
4.
Sealamiento al coprocesador
5.
Estados
6.
Varios
A continuacin se describir cada una de estas categoras y se proporcionarn ms
detalles cuando se describan ms adelante las pastillas de lntel y de Motorola. En la figura
3-31 se muestran estos grupos de seales de manera general para una pastilla de CPU. Las
patas de control del bus son en su mayora salidas del microprocesador hacia el bus (o sea
entradas para las pastillas de memoria y de entrada/salida), indicando la accin que desea
realizar.
Las patas de interrupcin son entradas de los dispositivos de entrada/salida al
microprocesador. En la mayora de los sistemas, el microprocesador puede indicar a estos
lentos dispositivos que inicien su operacin y despus dedicarse a algo ms til mientras
stos trabajan. Cuando termina la operacin de E/S, la pastilla controladora de
entrada/salida activa una seal en una de estas patas para interrumpir ala CPU para que
atienda al dispositivo, por ejemplo para verificar si hubo algn error de E/S. Algunos
microprocesadores tienen una pata de salida para reconocer la seal de interrupcin.

67

Para regular el trfico en el bus, se necesitan las patas de arbitraje del bus, a fin de
evitar que dos dispositivos pretendan utilizarlo al mismo tiempo. Para los fines de arbitraje,
se considera a la CPU como un dispositivo.
Muchas pastillas estn diseadas para operar junto con coprocesadores, que en su
mayora son unidades aritmticas de punto flotante, pero tambin pueden ser pastillas de
grficos u otras. Para facilitar la comunicacin entre el microprocesador y el coprocesador
se incluyen patas especiales para realizar y autorizar diversas solicitudes. Adems de estas
seales, algunos microprocesadores tienen otras patas para funciones varias. Algunos de
stos proporcionan o aceptan informacin sobre el estado del microprocesador, otros sirven
para reinicializar la computadora o para asegurar la compatibilidad con pastillas de E/S de
versiones anteriores.

Buses de computadora
Un bus es una ruta elctrica comn entre mltiples dispositivos. Un ejemplo comn es
el bus del sistema presente en toda microcomputadora, el cual consiste de 50 a 100
alambres de cobre paralelos grabados en la tarjeta matriz, con conectores espaciados a
intervalos regulares para conectar tarjetas de memoria y de entrada/salida. Adems, los
buses se pueden dedicar a fines especiales como conectar una pastilla de microprocesador a
uno ovarios coprocesadores o memorias locales. Ms an, dentro de la misma pastilla del
microprocesador puede haber varios buses para conectar sus componentes internos, como
se ilustra en la figura 3-32. En las publicaciones, los buses se dibujan en ocasiones como
flechas gruesas tal como en esta figura.
Mientras que dentro de la pastilla los diseadores de microprocesadores tienen la
libertad de usar cualquier clase de bus, a efecto de que las tarjetas diseadas por terceras
personas puedan conectarse al bus del sistema, debe haber reglas bien definidas del
funcionamiento de ste, las cuales deben ser obedecidas por todos los dispositivos
conectados al mismo.
Estas reglas se denominan protocolo del bus. Asimismo, debe haber especificaciones
mecnicas y elctricas para que las tarjetas diseadas por terceros se ajusten al gabinete
de tarjetas j tengan los conectores necesarios para acoplarse a la tarjeta matriz, tanto
fsicamente como en trminos de voltaje.
Una gran variedad de buses existen diseminados en el mundo de la computacin.
Algunos de los ms conocidos incluyendo ejemplos entre parntesis son: Camac (fsica
nuclear), EISA (80386), Fastbus (fsica de alta energa), IBM PC y PC/AT (computadoras
personales), Massbus (PDP-11, VAX), Megabus (Honeywell), Microchannel (PS/2), Multibus I
(8086), Multibus II (80386), Nubus (Macintosh II), Omnibus (PDP-8), Qbus (LSI-ll ), S-I00
(Computadoras recreativas), SBI (VAX-11/780), Unibus (PDP-11), Versabus (Motorola) y

68

VME (680xO). Probablemente, ste sera un mundo si todos estos buses con excepcin de
uno, desaparecieran. Por desgracia, la estandarizacin en esta rea parece poco probable
en virtud de las inversiones existentes en todos estos sistemas incompatibles.

A continuacin se estudiar el funcionamiento de los buses. Algunos dispositivos


conectados al bus se encuentran en estado activo y pueden iniciar transferencias, mientras
que otros estn en estado pasivo aguardando solicitudes. A los dispositivos activos se les
llama maestros mientras que a los pasivos se les denomina esclavos. Cuando la CPU ordena
leer o escribir un bloque aun controlador de discos, sta acta como dispositivo maestro y el
controlador como esclavo. Sin embargo, el controlador puede actuar ms adelante como
dispositivo maestro, al indicar a la memoria que acepte las palabras que lee de la unidad de
disco. En la figura 3-33 se listan varias de las combinaciones tpicas entre dispositivos
maestros y esclavos. La memoria no puede, bajo ninguna circunstancia, actuar como
dispositivo maestro.
A menudo las seales binarias que emiten los dispositivos no son la suficientemente
fuertes para activar el bus, en especial si ste es relativamente largo o tiene muchos
dispositivos conectados. Por esto la mayora de los dispositivos maestros se conectan al bus
a travs de una pastilla denominada manejador del bus, que es en esencia un amplificador
digital. En forma parecida, los dispositivos esclavos se conectan por medio de un receptor
del bus. Para los dispositivos que pueden actuar ya sea como maestros o esclavos, se utiliza
una pastilla combinada llamada transmisor-receptor del bus.

69

Estas pastillas de interfaz son a menudo dispositivos triestado, a fin de permitirles


flotar (desconectarse) cuando no son necesarios, o estar conectados de cierto modo
diferente llamado colector abierto, con el que se logra un efecto similar. Cuando dos o ms
dispositivos en una lnea de colector abierto activan la lnea al mismo tiempo, el resultado
es el O-Booleano para todas las seales. A esta configuracin se le conoce por lo regular
con el nombre de O-alambrado. En la mayora de los buses algunas de las lneas son del
tipo triestado, mientras que otras que requieren de las propiedades del O-alambrado, son
del tipo colector abierto.
Como en un microprocesador, un bus tambin tiene lneas de direcciones, de datos y
de control, sin embargo no es necesario que haya una correspondencia de 1 al entre las
seales de ambos. Por ejemplo, algunos microprocesadores tienen tres patas que codifican
las operaciones que se estn realizando, como lectura o escritura de la memoria o de
entrada/salida. Por su parte, un bus tpico tendr una lnea para lectura de memoria, otra
para escritura de memoria, una tercera para lectura de E/S, una cuarta para escritura de
E/S y as sucesivamente. Por lo tanto, se requiere de una pastilla decodificadora entre la
CPU y dicho bus para convertir la seal codificada de tres bits en seales separadas, que
puedan ser manejadas por las lneas del bus.
Otros aspectos relevantes en el diseo de buses (adems del nmero de direcciones y
lneas de datos) son: la sincronizacin del bus, el mecanismo de arbitraje, el manejo de
interrupciones y el manejo de errores. Todos ellos tienen un impacto significativo en la
velocidad y en la amplitud de banda del bus. En las secciones siguientes se abordarn estos
puntos con mayor detalle, comenzando por la sincronizacin.

Buses sncronos
Dependiendo de los ciclos de tiempo, los buses pueden clasificarse en dos distintas
categoras. Un bus sncrono tiene una lnea manejada por un oscilador de cristal. La seal
de esta lnea consiste en una onda cuadrada con una frecuencia que vara entre 5 y 50 MHz.
Todas las actividades del bus se realizan en un nmero entero de estos ciclos, denominados
ciclos del bus. El otro tipo de bus, el bus asncrono no tiene un reloj maestro, la longitud de
los ciclos del bus puede ser cualquiera que se necesite y no se requiere sea la misma entre
cada par de dispositivos. Ambas categoras sern examinadas en su oportunidad, ms
adelante.

70

Como un ejemplo de funcionamiento de un bus sncrono, considrense los diagramas


de tiempo de la figura 3-34(a), en el que se usar un reloj de 4 MHz, el cual da un ciclo del
bus de 250nseg. Se asumir adems. que la lectura de un byte de memoria toma tres ciclos
del bus. o sea un total de 750 nseg desde el inicio del ciclo T 1 hasta el final del ciclo T3.
Ntese que ninguna de las lneas ascendentes o descendentes han sido dibujadas en forma
vertical en virtud de que ninguna seal elctrica puede cambiar su valor en un tiempo de
cero. En el ejemplo se asume que toma 10 nseg cambiar una seal. Tanto las lneas de reloj
como de direcciones. datos, MREQ y RD se muestran en la misma escala de tiempo. El
comienzo de T1 se define por el flanco ascendente de reloj. Poco despus de iniciado T 1, la
CPU pone la direccin del byte deseado en las lneas de direcciones. Como la direccin no
consta de un solo valor. como en el caso del reloj no puede mostrarse con un solo trazo; en
cambio se presenta como dos lneas que se cruzan al momento en que la direccin cambia.
Ms an, el sombreado que precede al cruce, indica que su valor no es importante.
Utilizando esta misma convencin de sombreado, podemos
observar que el contenido de las lneas de datos no es significativa hasta bien
adentrado T3.
MREQ y RD se activan una vez que las lneas de direccin han tenido tiempo para
asentar sus nuevos valores. MREQ indica que la memoria (y no un dispositivo de E/S) est
siendo accesada y RD se usa para distinguir las operaciones de lectura de las de escritura.

71

Para dar tiempo a la memoria para decodificar la direccin y poner los datos en el bus, no
sucede nada durante T2. En el flanco descendente del reloj. la CPU lee las lneas de datos y
almacena su valor en un registro interno. Una vez ledos los datos, la CPU desactiva MREQ y
RD. En caso necesario puede iniciarse otro ciclo de memoria en el siguiente flanco
ascendente del reloj.
En la especificacin de tiempos de la figura 3-34(b), se muestra de manera ms clara
el significado de los ocho smbolos que aparecen en el cronograma. TRDIR por ejemplo, en el
intervalo de tiempo, entre el flanco ascendente del reloj en T 1 y el establecimiento de las
lneas de direccin. De acuerdo con la especificacin de tiempos. TRDIR 110 nseg, lo que
significa que el fabricante de la pastilla garantiza que durante cualquier ciclo de lectura de
operandos, la CPU pondr la direccin a ser leda dentro de los 110 nseg siguientes al punto
medio del flanco ascendente del reloj en T1.
En los diagramas de tiempos tambin se requiere que los datos estn disponibles por
lo menos 50 nseg antes del flanco descendente de T3, para darle tiempo de estabilizarse
antes de ser ledas por la CPU.
La combinacin de las restricciones en TRDIR y TEDAT significa que, en el peor de los
casos. la memoria tendr slo 250 + 250 + 125 -110 -50 = 465 nseg desde el momento en
que aparecen las direcciones hasta que deba entregar el dato. Si la memoria no pudiera
responder tan rpido deber activar ESPERA antes del flanco de bajada de T 2, que es
cuando se muestrea.
Esta accin insertar estados de espera (ciclos extra del bus) hasta que la memoria
termine y desactive ESPERA.
La especificacin de tiempo garantiza que la direccin estar presente al menos 60
nseg antes de que se active MREQ. Este tiempo puede ser importante si MREQ se conecta a
la seleccin del circuito de memoria, ya que algunas memorias requieren que la direccin
est estable antes de su seleccin. Evidentemente, el diseador del microcomputador no
deber elegir un chip de memoria que requiera de establecimiento de 75 nseg antes de
MREQ .
La restriccin en TRPM y en TLB significa que MREQ y RD deben activarse antes de 85
nseg despus del flanco de bajada del reloj en T1. En el caso peor, la pastilla de memoria
tendr slo 250 + 250 - 85 - 50 = 365 nseg desde la activacin de MREQ y RD hasta tener
el dato en el bus. Esta restriccin se aade a la referente a la direccin.
TPMA y TLA dicen cunto tardan en negarse MREQ y RD despus de haberse muestreado
el dato. Finalmente, TMDAT dice cunto tiempo debe mantener la memoria el dato en el bus
despus de desactivar RD. Por lo que concierne a la CPU del ejemplo, la memoria puede
retirar los datos del bus tan pronto como se desactive RD; sin embargo, en algunos
microprocesadores los datos deben permanecer estables un poco ms de tiempo.
Cabe sealar que la figura 3-34 representa una versin muy simplificada de las
restricciones reales en la especificacin de tiempos. En la prctica, se sealan siempre
muchos ms tiempos crtico. No obstante, muestra una buena imagen de como funciona un
bus sncrono.
Adems de los ciclos de lectura (y escritura), algunos buses sncronos manejan
transferencias en bloque. Cuando se inicia la lectura de un bloque el bus maestro indica al
esclavo cuantos bytes van a transferirse, por ejemplo, poniendo el nmero de bytes en la
lnea de datos durante T1. En vez de regresar slo un byte, el bus esclavo enva un byte
durante cada ciclo hasta agotar el nmero indicado. En este ejemplo, la lectura de un
bloque de n bytes tomara n + 2 ciclos en lugar de 3n.
Otra forma de hacer ms rpido al bus consiste en acortar el ciclo. En el ejemplo, se
transfiere un byte cada 750 nseg con una amplitud de banda mxima de 1.33 Mbytes/seg.
Con un reloj de 8 MHz, el tiempo de ciclo se reducira a la mitad y se podran alcanzar 2.67
Mbytes/seg. Sin embargo, acortar el ciclo del bus puede conducir a problemas de ingeniera.
No todas las seales en las diversas lneas viajaran exactamente a la misma velocidad
creando un efecto llamado distorsin del bus. Resulta esencial que la distorsin y el tiempo
del ciclo sean comparables duraderamente a fin de evitar que los intervalos de tiempo
digitalizados terminen en un ciclo de tiempo anlogo.
El ltimo punto a tratar es si las seales de control deben activarse altas o bajas.
Corresponde a los diseadores del bus determinar cul es ms conveniente, pero la eleccin

72

es, en esencia, arbitraria. Esta cuestin puede verse como el equivalente en el hardware, de
la eleccin de un programador para representar como ceros o unos a los bloques libres de
disco en un mapa de bits.

BUSES ASINCRONOS
Aun cuando es fcil trabajar con buses sncronos debido a sus intervalos de tiempo
discretos, tambin presentan algunos problemas. Por un lado, todo el trabajo se realiza en
mltiples enteros del reloj del bus. Si una CPU y una memoria particular son capaces de
completar una transferencia en 3.1 ciclos, deben ampliarla a 4.0 ya que los ciclos
fraccionados estn prohibidos.
Peor an, una vez que se ha seleccionado un ciclo de bus y se ha construido para ste
tanto la memoria como las tarjetas de entrada/salida, resulta difcil aprovechar las ventajas
de mejoras futuras de la tecnologa. Suponga por ejemplo que algunos aos despus de
construido el sistema de la figura 3-34, aparecen nuevas CPU y memoria con ciclos de
tiempo de 100 nseg en vez de 250 nseg. Aun cuando pudieran usarse, correran a la misma
velocidad que el anterior, ya que el protocolo del bus requiere que la memoria active las
lneas de datos justo antes del flanco descendente de T3.
Por otro lado, si un bus tiene conectado un grupo heterogneo de dispositivos,
algunos rpidos y otros lentos, el bus debe ajustarse al ms lento impidiendo que los ms
rpidos utilicen todo su potencial.
Puede manejarse una tecnologa mixta utilizando un bus asncrono, esto es, un bus sin
reloj maestro, como el que se muestra en la figura 3-35. En vez de que todo est
"amarrado" al reloj, cuando el bus maestro ha activado las seales de direccin, MREQ, RD
y cualquier otra que necesite, activa entonces una seal especial llamada SINM
(SINcronizacin Maestra). Cuando el dispositivo esclavo ve esta seal realiza su trabajo tan
rpido como puede, activando al terminar la seal SINE (SINcronizacin Esclava).

Tan pronto como el maestro ve activada la seal SINE sabe que los datos estn
disponibles de modo que los almacena en un registro interno y desactiva las lneas de
direcciones lo mismo que MREQ, RD y SINM. A su vez, cuando el esclavo observa
desactivada la seal SINM, sabe que el ciclo se ha completado, as que desactiva SINE,
regresando a la situacin original, con todas las seales desactivadas y aguardando el
siguiente ciclo.
En los cronogramas de buses asncronos (y en ocasiones tambin en los de sncronos)
se utilizan flechas para indicar causa y efectos como en la figura 3-35. Activar SINM
ocasiona que se activen las lneas de datos, as como tambin provoca que el esclavo active
SINE. A su vez, activar esta ltima seal, conduce a desactivar las lneas de direcciones,

73

MREQ, RD y finalmente, desactivar SINM causa la desactivacin de SINE, terminando as la


lectura.
Al conjunto de seales enlazadas de esta forma se le denomina sincronizacin
completa o bidireccional, cuya parte esencial consta de cuatro pasos:
1. Se activa SINM.
2. Se activa SINE en respuesta a SINM.
3. Se desactiva SINM en respuesta a SINE.
4. Se desactiva SINE en respuesta a la desactivacin de SINM.
Debe quedar claro que la sincronizacin completa es independiente de los ciclos de
tiempo. Cada paso se provoca por un paso previo, y no por un impulso de reloj. Si una
pareja maestro-esclavo en particular es lenta, de ninguna manera afecta a otra posterior
que sea mucho ms rpida.
Con esto deben quedar claras las ventajas de los buses asncronos, pero el hecho es
que la mayora de los buses son sncronos por la razn de que es ms fcil construir
sistemas sncronos. La CPU slo activa sus seales y la memoria slo reacciona a stas. No
hay retroalimentacin (causa y efecto), pero si los componentes se han seleccionado
adecuadamente, el trabajo se desarrollar de manera correcta sin necesidad de
sincronizacin.

Arbitraje del bus


Hasta ahora hemos asumido en forma tcita que slo hay un bus maestro: la CPU. En
realidad, tambin las pastillas de entrada/salida pueden actuar como maestros para lecturas
y escrituras de memoria as como para provocar interrupciones. Asimismo, los
coprocesadores pueden convertirse en maestros del bus. De ah que surja la siguiente
pregunta: " Qu sucede si dos o ms dispositivos desean actuar como bus maestros al
mismo tiempo?" La respuesta es que para evitar el caos, se necesita de algn mecanismo
de arbitraje del bus.
Este tipo de mecanismo puede ser centralizado o descentralizado. Se ver primero el
arbitraje centralizado, que en forma sencilla se muestra en la figura 3-36(a). En este
esquema, un solo rbitro del bus determina qu dispositivo tiene acceso. Muchos
microprocesadores contienen el rbitro integrado en la pastilla de CPU, pero en sistemas de
minicomputadoras es a veces un dispositivo separado. El bus contiene una lnea de solicitud
que puede ser activada por uno o ms dispositivos en cualquier momento (funciona como
un O-alambrado). No hay forma de que el rbitro sepa cuntos dispositivos han solicitado el
bus. Las nicas categoras que pueden distinguirse son: existe(n) solicitud(es) y no existe
solicitud.

74

Cuando el rbitro recibe una solicitud para el bus, autoriza su uso activando la lnea de
respuesta del bus. Dicha lnea est conectada en serie a travs de todos los dispositivos de
entrada/salida, como en una serie de foquitos de navidad. Cuando el dispositivo que se
encuentra fsicamente ms cerca del rbitro recibe la seal, verifica si fue l quien hizo la
solicitud, en cuyo caso hace uso del bus y evita que la seal se siga propagando. Si este
dispositivo no fue quien origin la solicitud, la seal se propaga al siguiente dispositivo en la
lnea, el que acta en la misma forma y as sucesivamente hasta que algn dispositivo
acepte la seal y haga uso del bus. A este esquema se le denomina encadenamiento
margarita, y tiene la propiedad de que los dispositivos poseen, en efecto, prioridades
asignadas dependiendo de qu tan cerca se encuentren del rbitro. El dispositivo ms
cercano tiene la prioridad ms alta.
A fin de evitar las prioridades implcitas basadas en la distancia del rbitro, algunos
buses tienen mltiples niveles de prioridad. Para cada nivel existe una lnea de solicitud y
una lnea de respuesta. El bus que se muestra en la figura 3-36(b) tiene dos niveles, 1 y 2
(en la prctica los buses tienen 4, 8 o 16 niveles). Cada dispositivo est conectado a alguno
de los niveles de solicitud del bus, con aquellos que tienen tiempos ms crticos conectados
a las lneas con prioridades ms altas. En la figura 3-36(b) los dispositivos 1 y 2 utilizan el
nivel de prioridad 1, mientras que los dispositivos 3, 4 y 5 usan prioridad 2.
Si varios niveles de prioridad solicitan el bus al mismo tiempo, el rbitro concede su
uso slo al de prioridad ms alta. Entre los dispositivos con la misma prioridad se utiliza el
encadenamiento margarita. En la figura 3-36(b), en caso de conflicto el dispositivo 3 supera
al 4, ste al 5 que a su vez supera al dispositivo 1. El dispositivo 2 tiene la prioridad ms
baja porque se encuentra al final de la cadena con menor prioridad.
Al margen puede comentarse que tcnicamente no es necesario conectar en serie la
lnea de respuesta del nivel 2 a travs de los dispositivos 1 y 2, ya que stas no pueden
solicitar esta lnea, pero por conveniencia en la implantacin, resulta ms fcil conectar
todas las lneas de respuesta a todos los dispositivos, en lugar de hacer conexiones
especiales que dependan de qu dispositivo tiene cul prioridad.
Algunos rbitros tienen una tercera, lnea que es activada por el dispositivo cuando
acepta una lnea de respuesta y ocupa el bus. Tan pronto como se activa esta lnea de
reconocimiento, pueden desactivarse las lneas de solicitud y de respuesta. Como resultado,

75

otros dispositivos pueden solicitar el bus mientras que el primero lo est utilizando. Cuando
termine la transferencia actual, el siguiente maestro del bus ya habr sido seleccionado y
pueden iniciar su operacin tan pronto como se desactive la lnea de reconocimiento en el
momento que empieza la siguiente ronda de arbitraje. Este esquema requiere de una lnea
extra de bus as como ms componentes lgicos en los dispositivos, pero hace un uso ms
eficiente de los ciclos del bus. Entre otras, las pastillas de Motorola y de la PDP-11 utilizan
este sistema.
En muchos sistemas, la CPU puede tambin competir por el bus, pero se le asigna la
prioridad ms baja y slo puede ocupar el bus cuando nadie ms lo usa. Aqu la idea es que
la CPU puede esperar mientras que los dispositivos de entrada/salida deben obtener el uso
del bus rpido o pierden los datos que estn recibiendo; los discos girando a altas
velocidades no pueden esperar .
Cuando se utiliza el arbitraje del bus descentralizado no existe un rbitro. Por ejemplo,
el bus SBI de la VAX tiene 16 lneas priorizadas de solicitud del bus; este diseo limita el
nmero de dispositivos a 16. Cuando alguno de ellos desea utilizar el bus, activa su lnea de
solicitud. Todos los dispositivos monitorean todas las lneas de solicitud, de modo que al
final de cada ciclo de bus, cada dispositivo sabe si tiene la prioridad ms alta y de ah, si
podr usar el bus durante el siguiente. Este mtodo, comparado con el arbitraje
centralizado requiere de un mayor nmero de lneas de bus, pero evita el costo potencial
del rbitro.
Otro tipo de arbitraje del bus descentralizado se usa en el Multibus. Este esquema,
mostrado en la figura 3-37, slo usa tres lneas sin importar cuantos dispositivos haya. La
primera lnea del bus es una lnea de O-almbrico para solicitar el bus. La segunda
denominada BUSY es activada por el bus maestro correspondiente. La tercera se usa para el
arbitraje del bus y atraviesa todos los dispositivos mediante encadenamiento margarita. La
punta de esta cadena se conecta a la fuente de poder de 5 volts, manteniendo la lnea
activa.
Cuando ningn dispositivo requiere del bus, la lnea activa de arbitraje se propaga a
travs de todos los dispositivos. Para hacer uso del bus, el dispositivo checa primero si ste
est ocioso y si la seal de arbitraje ENT que recibe est activa, si no lo est no puede
convertirse en maestro del bus. Sin embargo, si ENT est activa, el dispositivo desactiva
SAL que es la seal que requiere el resto de los dispositivos en la lnea para desactivar ENT
y SAL. Al final, slo un dispositivo tendr activada ENT y desactivada SAL, con lo que se
convierte en maestro del bus, activa las lneas BUSY y SAL e inicia su transferencia.
Poniendo un poco de atencin, se puede apreciar que el dispositivo colocado ms
hacia la izquierda en la cadena que requiera el bus es el que lo obtiene. De ah que este
esquema sea similar al arbitraje de encadenamiento margarita, con la excepcin de que no
tiene rbitro, de modo que es ms barato, rpido y no est sujeto a fallas del rbitro.
Adems, el Multibus ofrece tambin arbitraje centralizado as que los diseadores del
sistema pueden elegir.

Un ltimo punto acerca del arbitraje se refiere a las operaciones de ciclo mltiples. En
sistemas de multiproceso, es una prctica comn usar una palabra de memoria para
proteger estructuras de datos compartidos. Si esta palabra es 0, un procesador puede
asignarle el valor de 1 y utilizar la estructura de datos. Si la palabra ya tiene el valor 1, el
procesador deber aguardar a que el procesador que est usando la estructura termine

76

asignando a la palabra nuevamente el valor de 0.


En la siguiente secuencia de pasos se muestra una situacin en donde las cosas no
salen bien:
1. El procesador A lee la palabra xy observa que tiene un valor de 0 (ciclo 0 del bus).
2. El procesador B lee la palabra xy observa que tiene un valor de 0 (ciclo 1 del bus).
3. El procesador A escribe un 1 en la palabra x (ciclo 2 del bus).
4. El procesador B escribe un 1 en la palabra x (ciclo 3 del bus).
Si esta secuencia ocurriera, habra dos procesadores pensando cada uno al mismo
tiempo que tiene acceso exclusivo a la estructura de datos compartida, originando un caos.
Para prevenir esta situacin, algunas CPU tienen una instruccin que lee una palabra de
memoria y si es 0 le da el valor de 1. El problema con dicha instruccin es que requiere de
dos ciclos del bus, uno para leer y otro para escribir. Existe una pequea pero real
posibilidad de que un segundo procesador se meta entre la lectura y la escritura causando
estragos.
La solucin a este problema es agregar una lnea extra al bus, LOCK, que pueda
activarse al inicio de dicha instruccin. Una vez activada, no permite a ningn otro
procesador convertirse en maestro del bus hasta que sea desactivada. Esta regla permite al
procesador original la posibilidad de realizar mltiples ciclos del bus sin interferencia. En los
buses que no tienen esta caracterstica, resulta difcil construir un sistema de multiproceso
que funcione de manera correcta.

Manejo de interrupciones
Hasta ahora slo se han abordado los ciclos ordinarios del bus, con un maestro que lee
o escribe en un esclavo. Otro uso importante del bus es el manejo de interrupciones.
Cuando la CPU instruye a algn dispositivo de entrada/salida para que haga algo, por lo
general espera una interrupcin cuando termine el trabajo. La seal de interrupcin indica
que requiere del bus.

Aqu se presenta el mismo tipo de problemas que con los ciclos del bus ordinario, ya
que es posible que varios dispositivos quieran enviar una interrupcin al mismo tiempo. La
solucin usual es asignar prioridades a los dispositivos, y usar un rbitro centralizado para
dar prioridad a aquellos que tengan los tiempos ms crticos. Existen en el mercado pastillas
estndar para el control de interrupciones y su uso est muy extendido. Las IBM-PC, PC/ AT
, PS/2 y todo sus clones (IBM-PC compatibles) usan una pastilla Intel 8259A como la que se
ilustra en la figura 3-38.
En las entradas de Solicitud de Interrupcin (SIx) de la 8259A, se pueden conectar en
forma directa hasta 8 pastillas controladoras de entrada/salida. Cuando alguno de estos
dispositivos desea realizar una interrupcin, activa su lnea de entrada. Cuando una o ms
de estas lneas est activa, la 8259A activa a su vez la seal INT (INTerrupcin), la cual
maneja directamente la pata de interrupcin de la CPU. Cuando esta ltima est en

77

disposicin de manejar la interrupcin, enva un impulso ala 8259A en INT A (INTerrupcin


Recibida). En este punto, la pastilla controladora deber especificar qu dispositivo caus la
interrupcin, colocando el nmero de ste en el bus de datos. Entonces, para encontrar la
direccin del procedimiento a ejecutar para atender esa interrupcin, el hardware de la CPU
utiliza dicho nmero como ndice en una tabla de apuntadores denominados vectores de
interrupcin.
Dentro de la 8259A existen diversos registros en los cuales puede leer o escribir la
CPU usando ciclos ordinarios del bus y las patas A0, RD (Lectura), WR (Escritura) y CS
(Seleccin de Pastilla). Una vez que el software ha manejado la interrupcin y est listo
para la siguiente, escribe una clave especial en unos de estos registros, lo que provoca que
la 8259A desactive INTR, a menos que tenga otra interrupcin pendiente tambin puede
escribirse en estos registros para cambiar el modo de operacin de la 8259A, enmascarar
una serie de interrupciones o habilitar otras caractersticas.
Cuando existen ms de 8 dispositivos de E/S se puede encadenar varias pastillas
8259A. En el caso ms extremo, cada una de las 8 entradas se pueden conectar a las
salidas de 8 pastillas 8259A, permitiendo hasta 64 dispositivos de E/S en una red de
interrupciones de dos etapas. La 8259A tiene varias patas para controlar el
encadenamiento, las cuales se han omitido en la figura para mayor simplicidad.
Aunque de ninguna manera hemos agotado el tema de diseo del bus, el material
anterior debe proporcionar los elementos suficientes para entender las bases de como
funcionan y su interaccin con los microprocesadores. En las obras de Borrill, 1985 y
Gustavson, 1984 puede encontrarse ms informacin al respecto.
Ahora se pasar de lo general a lo particular y se vern algunos ejemplos de
microprocesadores actuales y sus buses.

78

CONCLUSIN

79

BOLILLA II (Parte 2): EL


NIVEL DE
MICROPROGRAMACIN

80

INDICE
INDICE GENERAL............................................................................................1
BOLILLA I: LA COMPUTADORA..............................................................................................4
INDICE.......................................................................................................................................5
INTRODUCCIN...................................................................................................................12
LA COMPUTADORA............................................................................................................13
CONCEPTO:.........................................................................................................................13
FUNCIONES Y ACCIONES:...............................................................................................13
Para qu sirve una computadora?:.........................................................................................13
Computadora y Circuitos:......................................................................................................14
HARDWARE Y SOFTWARE: ............................................................................................14
Software: ...........................................................................................................................14
Al software se lo clasifica en dos grupos: .....................................................................14
Hardware:...........................................................................................................................15
Arquitectura - Componentes Bsicos:...................................................................................15
Unidad de Control:.............................................................................................................15
Unidad aritmtico-lgica:..................................................................................................15
Memoria:(Memoria Central)..............................................................................................15
Perifricos: ........................................................................................................................15
Ncleo de la computadora: ...............................................................................................15
BUSES DE COMPUTADORAS:.........................................................................................16
Buses sncronos y asncronos: ..............................................................................................18
Arbitraje del bus:...............................................................................................................19
Ejemplo de encadenamiento margarita:.............................................................................19
Solicitud del Bus............................................................................................................19
Dispositivos de E/S............................................................................................................19
Manejo de interrupciones:.................................................................................................20
Canales de e/s.........................................................................................................................20
TECNOLOGA DE CANALES:.......................................................................................21
TIPOS DE CANALES:.....................................................................................................21
Multiplexor: ..................................................................................................................21
Selector..........................................................................................................................22
Multipexor por bloques: ................................................................................................22
Spoll: .........................................................................................................................22
SISTEMA OPERATIVO.......................................................................................................23
Introduccin: ....................................................................................................................23
QU ES UN SISTEMA OPERATIVO?.........................................................................24
CONCLUSIN........................................................................................................................25
BOLILLA II (Parte 1): EL NIVEL DE LOGICA DIGITAL.....................................................26
INDICE.....................................................................................................................................27
INTRODUCCIN...................................................................................................................34
EL NIVEL DE LOGICA DIGITAL......................................................................................35
COMPUERTAS Y ALGEBRA BOOLEANA......................................................................35
Compuertas........................................................................................................................35
Algebra booleana...............................................................................................................37
Implementacin de funciones booleanas ..........................................................................38

81

Equivalencia entre circuitos...............................................................................................40


CIRCUITOS DIGITALES BSICOS..................................................................................44
Circuitos integrados ..........................................................................................................44
Circuitos combinacionales ................................................................................................47
Multiplexores ................................................................................................................47
Decodificadores ............................................................................................................49
Comparadores ...............................................................................................................51
Arreglos (matrices) lgicos programables ....................................................................51
Circuitos aritmticos..........................................................................................................53
Registros de corrimiento................................................................................................53
Sumadores .....................................................................................................................54
Unidades aritmticas y lgicas......................................................................................55
Relojes ..............................................................................................................................55
MEMORIA............................................................................................................................57
Biestables...........................................................................................................................57
Bieslables SR sincronizados..........................................................................................59
Biestables D sincronizados............................................................................................59
Flip-flops y registros..........................................................................................................59
Registros........................................................................................................................60
Organizacin de las memorias...........................................................................................61
Propiedades de las memorias.............................................................................................64
MICROPROCESADORES y BUSES...................................................................................66
Microprocesadores ............................................................................................................66
Buses de computadora.......................................................................................................68
Buses sncronos .................................................................................................................70
BUSES ASINCRONOS....................................................................................................73
Arbitraje del bus ................................................................................................................74
Manejo de interrupciones ..................................................................................................77
CONCLUSIN........................................................................................................................79
BOLILLA II (Parte 2): EL NIVEL DE MICROPROGRAMACIN.......................................80
INDICE.....................................................................................................................................81
INTRODUCCIN...................................................................................................................88
EL NIVEL DE MICROPROGRAMACIN .......................................................................89
REPASO SOBRE EL NIVEL DE LGICA DIGITAL .......................................................90
Registros ..........................................................................................................................90
Buses .................................................................................................................................90
Multiplexores y decodificadores .......................................................................................92
Unidades aritmticas y lgicas y registros de corrimiento ...............................................92
Relojes ..............................................................................................................................93
Memoria principal .............................................................................................................94
Encapsulado de los componentes .....................................................................................95
UNA MICROARQUITECTURA TIPICA ...........................................................................96
La ruta de datos .................................................................................................................96
Microinstrucciones ............................................................................................................98
Cronologa de las microinstrucciones .............................................................................100
Secuenciamiento de las microinstrucciones ...................................................................102
UNA MACROARQUITECTURA TIPICA .......................................................................103
Pilas .................................................................................................................................103

82

El juego de macroinstrucciones ......................................................................................107


MICROPROGRAMACIN: UN EJEMPLO ....................................................................110
El lenguaje micro ensamblador .......................................................................................110
El ejemplo de microprograma .........................................................................................111
Observaciones sobre el microprograma ..........................................................................113
Perspectivas ....................................................................................................................114
EL DISEO DEL NIVEL DE MICROPROGRAMACIN ............................................115
Microprogramacin horizontal frente a microprogramacin vertical..............................115
Nanoprogramacin ..........................................................................................................122
Mejora del rendimiento ...................................................................................................123
Memoria cach ...............................................................................................................129
CONCLUSIN......................................................................................................................134
................................................................................................................................................135
BOLILLA II (Parte 3): EL NIVEL DE MAQUINA CONVENCIONAL................................135
INDICE...................................................................................................................................136
INTRODUCCIN.................................................................................................................143
EL NIVEL DE MQUINA CONVENCIONAL.................................................................144
EJEMPLOS DEL NIVEL DE MAQUINA CONVENCIONAL........................................144
FORMATOS DE INSTRUCCIN.....................................................................................145
Criterios de diseo de formatos de instruccin................................................................146
Cdigos de operacin con extensin...............................................................................147
Ejemplos de formatos de instrucciones...........................................................................149
La PDP-11...................................................................................................................149
Direccionamiento.............................................................................................................149
Direccionamiento inmediato........................................................................................150
Direccionamiento directo.............................................................................................150
Direccionamiento de registros.....................................................................................151
Direccionamiento indirecto..........................................................................................151
Indexacin....................................................................................................................152
Direccionamiento por medio de pilas..........................................................................153
Notacin polaca inversa...........................................................................................155
Evaluacin de frmulas en la notacin polaca inversa............................................157
Algoritmo.............................................................................................................157
Algoritmo.............................................................................................................157
Ejemplos de direccionamiento.....................................................................................160
Direccionamiento en la PDP-11..............................................................................160
Tipos de Instrucciones ........................................................................................................160
Instrucciones de movimiento de datos ............................................................................161
Operaciones binarias .......................................................................................................161
Operaciones unarias ........................................................................................................162
Comparaciones y Saltos Condicionales...........................................................................164
Instrucciones de llamada a procedimiento ......................................................................166
Control de iteraciones .....................................................................................................167
Entrada / salida ................................................................................................................168
Flujo De Control .................................................................................................................173
Flujo de control secuencial y saltos ................................................................................173
Procedimientos ................................................................................................................174
Corrutinas ........................................................................................................................179
83

Desvios ............................................................................................................................182
Interrupciones .................................................................................................................183
ACCIONES DE HARDWARE ..................................................................................183
ACCIONES DE SOFTWARE ...................................................................................184
CONCLUSIN......................................................................................................................187
BOLILLA III: ARQUITECTURA DEL PROCESADOR.......................................................188
INDICE...................................................................................................................................189
INTRODUCCIN.................................................................................................................196
ARQUITECTURA DEL PROCESADOR..........................................................................197
ESTRUCTURA GENERAL...............................................................................................197
DESCRIPCIN DE LOS COMPONENTES DE UN PROCESADOR ............................197
Microprocesadores...............................................................................................................200
EJECUCIN DE LAS INSTRUCCIONES .......................................................................201
ORGANIZACIN DE LA CPU ........................................................................................202
LA UNIDAD ARITMTICA Y LGICA .........................................................................204
LA UNIDAD DE CONTROL.............................................................................................206
FASE DE BSQUEDA DE LA INSTRUCCIN .............................................................207
FASE DE BSQUEDA O ALMACENAMIENTO DEL OPERANDO ...........................207
Caso de bsqueda del operando, seguido de procesamiento: .........................................207
Caso de almacenamiento del operando: ..........................................................................208
FASE DE PREPARACIN DE LA SIGUIENTE INSTRUCCIN .................................209
INSTRUCCIN DE RUPTURA DE SECUENCIA ..........................................................209
EL CANAL..........................................................................................................................210
LAS UNIDADES PERIFRICAS .....................................................................................211
INTERRUPCIONES ..........................................................................................................211
CONCLUSIN......................................................................................................................214
BOLILLA IV: MEMORIA........................................................................................................215
INDICE...................................................................................................................................216
INTRODUCCIN.................................................................................................................223
MEMoRia ..............................................................................................................................224
DIRECCIONES DE MEMORIA .......................................................................................225
ORDENAMIENTO DE BYTES ........................................................................................226
CDIGOS CORRECTORES DE ERRORES ....................................................................227
CLASIFICACIN Y ORGANIZACIN DE LAS MEMORIAS .....................................227
PARMETROS y CARACTERSTICAS MS IMPORTANTES DE UNA MEMORIA 228
Capacidad.........................................................................................................................228
Formas de acceder a las posiciones de memoria ............................................................229
Memorias de acceso aleatorio (RAM = Ramdom Acess Memory) ............................229
Estructura de una RAM semiconductora ................................................................231
Pastillas de memoria en paralelo ........................................................................233
Memorias pasivas....................................................................................................235
Memorias de acceso serie ...........................................................................................236
Memorias asociativas ..................................................................................................238
MODOS DE DIRECCIONAMIENTO ..........................................................................239
Modo de direccionamiento directo .............................................................................239
Modo de direccionamiento indirecto ..........................................................................240
84

Modo de direccionamiento relativo ............................................................................240


Modo de direccionamiento indexado ..........................................................................242
Modo de direccionamiento por registro indirecto .......................................................243
Otros modos de direccionamiento ..............................................................................244
CONCLUSIN......................................................................................................................245
................................................................................................................................................246
BOLILLA V: EL NIVEL DEL LENGUAJE ENSAMBLADOR.............................................246
INDICE...................................................................................................................................247
INTRODUCCIN.................................................................................................................254
EL NIVEL DEL LENGUAJE ENSAMBLADOR..............................................................255
INTRODUCCIN AL LENGUAJE ENSAMBLADOR ...................................................256
Qu es un lenguaje ensamblador? .................................................................................256
Formato de una sentencia en lenguaje ensamblador .......................................................257
Comparacin entre el. lenguaje ensamblador y los lenguajes de alto nivel ...................258
Afinacin de programas ..................................................................................................259
EL PROCESO DE ENSAMBLAJE ...................................................................................261
Ensambladores de dos pasadas .......................................................................................261
La primera pasada ...........................................................................................................262
La segunda pasada ..........................................................................................................266
La tabla de smbolos .......................................................................................................267
MACrOS .............................................................................................................................269
Definicin, llamada y expansin de una macro ..............................................................269
Macros con parmetros ...................................................................................................271
Implementacin de macros en un ensamblador ..............................................................271
MONTAJE (LINKING) y CARGA ...................................................................................272
Tareas realizadas por el programa ensamblador .............................................................274
Estructura de un mdulo objeto ......................................................................................276
Tiempo de ligadura y reubicacin dinmica ...................................................................277
Enlace dinmico ..............................................................................................................279
CONCLUSIN......................................................................................................................282
BOLILLA VI (Parte 1): PERIFRICOS.................................................................................283
INDICE...................................................................................................................................284
INTRODUCCIN.................................................................................................................291
PERIFRICOS......................................................................................................................292
RESEA HISTRICA.......................................................................................................292
INTRODUCCIN ...............................................................................................................292
PERlFERICOS DE ENTRADA: ........................................................................................293
TECLADO: .....................................................................................................................293
Cuidados y advertencias..............................................................................................294
MOUSE (RATON) .........................................................................................................295
Tipos de ratones...........................................................................................................296
Ratones Inalmbricos. .............................................................................................296
Ratones Estacionarios..............................................................................................296
PANTALLAS TCTILES: ............................................................................................296
BOLAS GIRATORIAS: .................................................................................................296

85

ESCANER ......................................................................................................................296
Profundidad de color....................................................................................................296
Tipos de escner:.........................................................................................................297
Escner de mano: ....................................................................................................297
Ventaja: ...............................................................................................................297
Desventajas: ........................................................................................................297
Escner de Sobremesa: ...........................................................................................297
Ventajas: .............................................................................................................297
Desventajas: ........................................................................................................297
Escner de Rodillo:..................................................................................................297
Calibracin...................................................................................................................297
LECTORES DE CODIGO DE BARRA.....................................................................297
TABLETA DIGITALIZADORA....................................................................................298
LECTORES DE TARJETAS MAGNETICAS...............................................................298
LAPIZ OPTICO: ............................................................................................................298
PERIFERICOS DE ALMACENAMIENTO: .................................................................299
Discos...........................................................................................................................299
Discos flexibles............................................................................................................299
Fiabilidad del soporte. .............................................................................................300
Facilidad de manejo y almacenamiento. .................................................................300
1. Disco flexible de 5 1/4 pulgadas .....................................................................300
2. Disco flexible de 3 1/2pulgadas ......................................................................300
Disco duro....................................................................................................................300
Discos opticos: ............................................................................................................301
Cintas magneticas: ......................................................................................................302
DVD:............................................................................................................................302
Prestaciones del DVD: ............................................................................................303
El disco por dentro: .................................................................................................303
La compresin MPEG-2: ........................................................................................303
El futuro del DVD: .................................................................................................303
PERIFERICOS DE SALIDA: ............................................................................................304
PANTALLAS DE SISTEMAINFORMATICO (Monitor): ...........................................304
Impresoras........................................................................................................................305
Impresoras con cinta entintada: ..................................................................................305
Impresora de Bola: ..................................................................................................305
Impresoras de agujas: ..............................................................................................306
Impresoras sin cinta entintadas: ..................................................................................306
Impresoras trmicas: ...............................................................................................306
Impresoras de inyeccin de tinta: ...........................................................................306
Impresoras lser: .....................................................................................................306
Impresoras Lser de color: ......................................................................................306
PERIFERICOS DE COMUNICACION.. ..........................................................................307
MODEM..........................................................................................................................307
Aspectos tcnicos.........................................................................................................307
Como usar la Tecnologa 56K ................................................................................307
CONCLUSIN....................................................................................................................308
CONCLUSIN......................................................................................................................309
BOLILLA VI (PARTE 2): TCNICAS Y DISPOSITIVOS DE ENTRADA SALIDA...........310
INDICE...................................................................................................................................311

86

INTRODUCCIN.................................................................................................................318
TECNICAS Y DISPOSITIVOS DE ENTRADA / SALIDA (Input / Ouput)..................319
Dispositivos de fichas y de banda perforada.......................................................................319
Dispositivos de soporte magntico......................................................................................323
Impresoras............................................................................................................................323
Plotter...................................................................................................................................330
La pantalla............................................................................................................................331
Terminales...........................................................................................................................332
Procesos de comunicacin para la transmisin de datos a distancia...................................334
Otros perifricos..................................................................................................................334
Tcnicas de entrada/salida (input/output)............................................................................335
Polling (interrogatorio de trfico) ...................................................................................336
Interrupciones (interrupts) ..............................................................................................338
Transferencia DMA ........................................................................................................339
GLOSARIO.........................................................................................................................340
CONCLUSIN......................................................................................................................342
CONCLUSIN FINAL..............................................................................................................343
BIBLIOGRAFA .......................................................................................................................344

87

INTRODUCCIN

88

APUNTES DE CATEDRA
CARRERA:
Ctedra:
Profesor:
AO:

LICENCIATURA EN ANALISIS DE SISTEMAS


INGENIERIA EN SISTEMAS
Procesamiento De Datos I
Lic. Marcelo Martinez
2003

EL NIVEL DE MICROPROGRAMACIN
La frontera entre el hardware y el software no est bien definida y, adems, varia
constantemente. Las primeras computadoras tenan instrucciones para hacer operaciones
aritmticas y booleanas, corrimientos, comparaciones, iteraciones y otras que eran
realizadas directamente por el hardware. Para cada instruccin haba un circuito especifico
que la ejecutaba. En teora al menos, se poda destornillar el panel trasero e identificar los
componentes electrnicos que realizaban la instruccin dividir, por ejemplo.
En una moderna computadora multinivel ya no es posible aislar los circuito de la
divisin porque no existen. Todas las instrucciones en el nivel de mquina convencional (por
ejemplo: aritmticas, booleanas, de miento, de comparacin y de bucle) son realizadas
paso a paso por un intrprete que se ejecuta en el nivel de microprogramacin. El
equivalente moderno de buscar los circuitos de la divisin es obtener un listado del
microprograma y examinar la porcin que interpreta la instruccin de dividir .
Aunque los programas de cualquier nivel pueden ser ejecutados por un programa
intrprete que, a su vez, puede ser llevado a cabo por otro intrprete, esta jerarqua no
puede continuar indefinidamente. En el nivel inferior deber haber una mquina fsica, con
circuitos integrados, fuentes de alimentacin y otros objetos del hardware. Estos elementos
fueron el tema del captulo precedente. En este captulo estudiaremos cmo el
microprograma controla los componentes del hardware e interpreta el nivel de mquina
ordinaria (convencional). En el captulo 8 se estudiar una clase de mquinas no
microprogramadas (las mquinas RlSC).
Como la arquitectura del nivel de microprogramacin, denominada microarquitectura, est definida por el hardware, suele ser primitiva y difcil de programar. Por
ejemplo, a menudo son importantes las consideraciones de tiempos. Esto llev a Rocn
(1974) a definir la microprogramacin como "el diseo de sistemas ms o menos razonables
por medio de la interpretacin sobre mquinas irracionales".
El nivel de microprogramacin tiene una funcin especfica: ejecutar intrpretes de
otras mquinas virtuales (ms o menos razonables). El objetivo natural de diseo es la
obtencin de una organizacin considerablemente optimizada para la extraccin, examen y
ejecucin de instrucciones del nivel de mquina convencional y, en algunos casos, de otras
ms complejas. En este captulo examinaremos los principios y soluciones intermedias que
hay que considerar en el diseo y organizacin de este nivel.
Empezaremos nuestro estudio del nivel de microprogramacin revisando brevemente
los elementos bsicos estudiados en el captulo 3, ya que son parte de la arquitectura del
nivel de microprogramacin y, por tanto, de inters para el microprogramador (persona que
escribe microprogramas, no un programador pequeo). Luego entraremos en el meollo del
tema, explicando de modo pormenorizado cmo pueden construirse instrucciones complejas
a partir de secuencias de instrucciones ms primitivas. La explicacin se apoyar en un
ejemplo desarrollado detalladamente. Despus examinaremos los factores que deben
tenerse en cuenta al disear el nivel de microprogramacin de una computadora, para
entender mejor por qu tiene determinada estructura. Tambin se abordarn algunas
formas para mejorar el desempeo de la computadora. Por ltimo, se examinar el nivel de
microprogramacin de los dos ejemplos que se han venido usando, las familias lntel y
Motorola.

89

REPASO SOBRE EL NIVEL DE LGICA DIGITAL


El trabajo del microprogramador es escribir programas que controlen los registros,
buses, unidades aritmticas y lgicas, memorias y otros componentes del hardware de las
mquinas. En el captulo anterior estudiamos estos dispositivos; ahora simplemente vamos
a revisarlos para tenerlos presentes. Despus del repaso diremos algunas cosas sobre las
diferentes formas conceptuales de encapsular los componentes.

Registros
Un registro es un dispositivo capaz de almacenar informacin. El nivel de
microprogramacin siempre dispone de registros para guardar la informacin que se
necesita en el procesamiento de la instruccin en curso de interpretacin.
Desde el punto de vista conceptual, los registros son lo mismo que la memoria
principal; la diferencia estriba en que los registros estn ubicados en el procesador mismo
y, por tanto, se puede acceder a ellos en lectura y escritura ms rpidamente que a la
memoria principal, la cual suele estar fuera del chip (pastilla). Normalmente, las mquinas
mayores y ms caras tienen un nmero mayor de registros que las ms pequeas y
econmicas; stas tienen que usar la memoria principal para guardar los resultados
intermedios. En algunas computadoras el nivel de microprogramacin dispone de un grupo
de registros numerados desde 0, 1, 2..., hasta n-1 , denominado memoria local o memoria
de anotaciones.
Un registro puede caracterizarse por un nico nmero, es decir, por cuntos bits
puede guardar. La figura 4-1 muestra un registro de 16 bits con la convencin de
numeracin de bits usada en este libro. La informacin que se guarda en un registro
permanece en l hasta que otra la reemplaza. El proceso de leer la informacin de un
registro no afecta a su contenido. En otras palabras, cuando se lee un registro, lo que se
hace es una copia de su contenido, dejando inalterado el original.
N de bits 15 14 13 12 11 10 9
0 0 0 0 1 1 0

8
0

7
1

6
0

5
1

4
1

3
0

2
0

1
1

0
0

Fig. 4-1. Un registro de 16 bits de informacin

Buses
Un bus es un conjunto de alambres que se usan para transmitir seales en paralelo.
Por ejemplo, los buses se utilizan para permitir que el contenido de un registro se copie en
otro. A diferencia de los buses del sistema que se estudiaron en el captulo 3, stos slo
conectan dos dispositivos, de modo que no hay necesidad de lneas de direcciones o lneas
extensivas de control. Por o general son suficientes las n lneas de datos y una o dos de
control. Se emplean buses, pues la transmisin paralela de todos los bits a la vez, es mucho
ms rpida que la transmisin serial bit por bit.
Un bus puede ser unidireccional o bidireccional. Un bus unidireccional puede transferir
informacin en un solo sentido; en cambio uno bidireccional puede transferirla en los dos
sentidos, pero no simultneamente. Los unidireccionales suelen usarse para conectar dos
registros, uno de los cuales siempre es fuente y el otro siempre destino. Los bidireccionales
suelen usarse cuando hay una coleccin de registros, cualquiera de los cuales puede ser
fuente o destino.
Muchos dispositivos tienen la posibilidad de conectarse y desconectarse elctricamente
de los buses a los que estn conectados fsicamente. Estas conexiones pueden abrirse y
cerrarse en cuestin de nanosegundos. Un bus cuyos dispositivos tengan esta propiedad se
llama bus triestado, porque cada lnea puede estar a O, a 1o desconectada. Suele utilizarse
cuando hay muchos dispositivos que pueden suministrar informacin aun bus.
En la mayora de las micro arquitecturas algunos registros estn conectados a uno o
ms buses de entrada ya uno o ms de salida. La figura 4-2(a) muestra un esquema de
un registro de 8 bits conectado a un bus de entrada ya otro de salida. El registro consta de
ocho flip-flops del tipo D conectados, cada uno de ellos, al bus de salida por medio de un

90

buffer no inversor. Cada uno contiene 1 bit. El registro tiene dos seales de control CK
(reloj, que realmente quiere decir "carga registro") y DE (permiso de Salida), conectadas
ambas a todos los flip-flops. Normalmente ambas seales se hallan en su estado de reposo,
pero a veces pueden ser activadas, causando alguna accin.
Cuando CK estn desactivada, el contenido del registro no es afectado por las seales
del bus. En cambio, cuando se activa, el registro se carga con el contenido del bus de
entrada. Cuando DE est desactivada, el registro est desconectado del bus de salida y
desaparece respecto a los restantes registros conectados. Cuando DE est activo, el
contenido de registro pasa al bus de salida. Si otro registro, R, tuviera su entrada conectada
al bus de salida de nuestro registro, podra transferirse informacin de ste a R. Para
hacerlo, hay que activar DE y mantenerlo activo tanto tiempo como sea necesario para que
la salida al bus se estabilice. Despus se debe activar la lnea CK de R, con lo que ste se
carga con lo que hay en el bus. En el nivel de microprogramacin son frecuentes estas
operaciones de conexin de un registro a un bus para que otro lo lea, como veremos en
seguida. He aqu un segundo ejemplo de registros y buses: la figura 4-2(b) muestra un
registro de 16 bits con dos buses de salida, cada uno de ellos controlado por una seal DE
diferente.

91

Multiplexores y decodificadores
Los circuitos que tienen una o ms lneas de entrada y que calculan uno o varios
valores de salida determinados nicamente por las entradas actuales se llaman circuitos
combinacionales. Dos de los ms importantes son los multiplexores y los decodificadores.
Un multiplexor tiene 2" entradas de datos (lneas individuales o buses), una salida de datos
de la misma anchura que la entrada y una entrada de control de n bits que selecciona una
de las entradas y la encamina a la salida. La figura 4-3(a) muestra un multiplexor con dos
buses de entrada. La seal de control de un bit selecciona A o B como salida. La figura 3-12
muestra el circuito de un multiplexor de 8 entradas.
El inverso del multiplexor es el demultiplexor, que encamina su nica entrada a una de
sus 2" salidas, segn el valor que tengan sus n lneas de control.
Otro circuito combinacional importante es el decodificador, que tiene n lneas de
entrada y 2" de salida, numeradas desde O hasta 2"-1. Si el nmero que hay en las lneas
de entrada es k, entonces se pone a 1 la salida k, permaneciendo las dems a O. Un
decodificador tiene siempre una y una sola salida al, estando a 0 las restantes. La figura 43(b) ilustra simblicamente un decodificador de 4 a 16. La figura 3-14 muestra el circuito
de un decodificador de 3 a 8.
El inverso del decodificador es el codificador, que tiene 2n entradas y n salidas. Slo
puede haber una lnea de entrada a 1 y su nmero, en binario, aparece en la salida.

Unidades aritmticas y lgicas y registros de corrimiento


Toda computadora necesita algn medio para hacer operaciones aritmticas. El
circuito ms simple es un sumador, que toma dos entradas de n bits y produce su suma
como salida. Un circuito aritmtico ms general es la ALU (Unidad Aritmtica y Lgica).
Tambin tiene dos entradas y una salida de datos, pero adems tiene algunas entradas y
salidas de control. La de la figura 4-4(a) tiene dos bits de funcin, F0 y F1 que determinan
qu funcin se ha de realizar. La ALU que vamos a usar en nuestro ejemplo puede calcular
A + B, AND B, A y A-. Las dos primeras no requieren explicacin; la tercera simplemente
copia A en la salida; la cuarta obtiene A negando (todos sus bits invertidos). La tercera
funcin puede parecer intil, pero veremos su utilidad despus. La figura 3-20 muestra una
ALU de cuatro funciones que opera sobre datos de un bit. Replicando este circuito n veces y
conectando el acarreo del bit i al del i + 1, obtendremos una ALU de n bits que realice las
operaciones AND, OR, NOT y suma.
Una ALU tambin puede tener salidas de control. Salidas tpicas son aquellas que se
ponen a 1 cuando la salida de la ALU es negativa o cero, cuando hay acarreo del bit ms
significativo o cuando ha ocurrido un desbordamiento. El ejemplo de la figura 4-4(a) tiene
dos salidas de control: N, para indicar que la salida de la ALU es negativa y Z, que indica
que es cero. El bit N es simplemente una copia del ms significativo de la salida, mientras
que el bit Z es el NOR de todos los bits de salida.
Aunque algunas ALU pueden realizar tambin operaciones de desplazamiento, la

92

mayora de las veces es necesaria una unidad especfica. Este circuito puede desplazar su
entrada un bit a la izquierda o a la derecha, o tambin no realizar ningn registro de
corrimiento. La figura 4-4(b) muestra el smbolo que utilizaremos para registros de
corrimiento; la figura 3-17 muestra el circuito de un desplazador algo ms sencillo.

Relojes
Los circuitos de las computadoras funcionan normalmente al ritmo de un reloj,
dispositivo que emite una secuencia peridica de impulsos. Estos impulsos definen los ciclos
de mquina. Durante cada ciclo tiene lugar alguna actividad bsica, como la ejecucin de
una microinstruccin. A menudo es til dividir los ciclos en sub ciclos, para que las partes de
una microinstruccin puedan realizarse en un orden bien definido. Por ejemplo, las entradas
en la ALU deben estar disponibles y estabilizadas antes de que pueda almacenarse su
salida.
La figura 4-5(a) simboliza un reloj de cuatro salidas. La de arriba es la salida
principal; las otras tres se derivan de ella al someterla a distintos retardos. La salida
principal [lnea superior de la figura 4-5(b) tiene un ancho de un cuarto de ciclo. Las otras
tres estn retrasadas uno, dos y tres veces el ancho del impulso. El resultado es un circuito
que divide cada ciclo en cuatro sub ciclos idnticos. Para ms detalles, vase la figura 3-21.

El diseador de computadoras puede hacer que cuatro transiciones diferentes tengan


lugar en cierto orden dentro de un ciclo activando cada una de ellas con el AND lgico de la
seal habilitadora y una lnea de reloj distinta. Primero se disparar la transicin asociada a
la lnea principal de reloj, luego la que est asociada a la lnea de reloj de menor retardo y
as sucesivamente.

93

Memoria principal
Los procesadores deben ser capaces de leer y escribir en memoria. La mayora de las
computadoras tienen un bus (conducto) de direcciones, otro de datos y otro de control para
la comunicacin entre la CPU y la memoria. Para leer de la memoria, la CPU pone una
direccin en el bus de direcciones y ajusta adecuadamente las seales de control; por
ejemplo, activando la seal RD (lectura). Luego, la memoria pone el dato pedido en el bus
de datos. En algunas. computadoras la lectura y la escritura en memoria son sncronas; es
decir, la memoria debe responder dentro de un plazo fijo. En otras puede tomarse el tiempo
que quiera, sealizando por medio de una lnea de control la presencia de datos cuando
termine.
Las escrituras en memoria se hacen en forma parecida. La CPU pone en el bus de
datos el dato a escribir y en el bus de direcciones la direccin donde se quiere guardar,
activando despus WR (escritura). Una alternativa de tener las seales RD y WR sera tener
una seal MREQ, de peticin a la memoria y otra RW , que distinga entre la lectura y la
escritura.
U n acceso a memoria es siempre considerablemente ms largo que el que se necesita
para ejecutar una sola microinstruccin. En consecuencia, el microprograma debe mantener
los valores correctos en los buses de datos y direcciones durante varias microinstrucciones.
Para simplificar esta tarea, a menudo es conveniente tener dos registros, el MAR (Registro
de Direccin de Memoria) y el MBR (Registro de Intercambio de Memoria), a los que se
conectan los buses de direcciones y de datos, respectivamente. En este libro conviene
disponer los buses como se indica en la figura 4-6. Ambos registros se colocan entre la
CPU y el bus del sistema. El bus de direcciones es unidireccional en ambos lados y se carga
desde el lado de la CPU, activando la lnea de control. Las lneas-del bus de direcciones del
sistema siempre estn permitidas [o, posiblemente, slo durante las lecturas y las
escrituras, lo que requiere una lnea de permiso de salida conectada al OR lgico de RD y
WR (no mostrada en la figura)]. La lnea de control del MBR hace que los datos se carguen
del bus "Entrada de datos", en el lado de la CPU. El bus "Salida de datos" est siempre
permitido.
El bus de datos del sistema es bidireccional, sacando el contenido del MBR cuando WR
est activa y cargndolo cuando se activa RD.

94

Encapsulado de los componentes


En las secciones precedentes hemos descrito varios circuitos que pueden combinarse
para formar una computadora. Se hallan disponibles en el comercio en formas
conceptualmente distintas. La ms simple es la combinacin en circuitos MSI (Integrados a
Escala Media), con componentes como un registro, una ALU, un registro de corrimiento,
etc., cada uno en una pastilla. Este mtodo se encuentra en la figura 4-7(a). Debido ala
gran variedad de chips rpidos y de bajo precio disponibles en el mercado, muchas
computadoras se construyen conectando este tipo de componentes.
El principal inconveniente de construir computadoras con componentes MSI es el gran
nmero de componentes necesarios, que ocupan numerosas tarjetas de circuito impreso,
consumen mucha energa y disipan abundante calor . Otra tcnica es usar pastillas de
rebanada de 1 bit. Cada pastilla de rodaja de bit tiene, por ejemplo, 1 bit de registros, ALU
y otros componentes. La figura 3-20 muestra el aspecto interno que presenta una rodaja de
ALU de 1 bit. Podramos fcilmente extender su diseo para aadirle, por ejemplo, 16
registros de 1 bit, un registro de corrimiento de 1 bit y otros componentes de 1 bit de
ancho.
Tomando, por ejemplo, 32 de esas pastillas y ponindolas una al lado de otra,
obtendramos una mquina con 32 registros, una ALU, un registro de corrimiento, etc.,
todos de 32 bits.
En esta forma podramos construir una mquina de 16 bits con solo 16 pastillas. Las
rebanadas de bit dan al diseador la posibilidad de construir fcilmente una mquina de
cualquier longitud de palabra. Tambin hay pastillas con rebanadas de 2 o 4 bits. La figura
4-7(b) muestra una mquina de 8 bits construida con 4 rebanadas de 2 bits. En general, la
utilizacin de rebanadas requiere menos pastillas y mucho menos tiempo de diseo que la
de circuito M SI, pero normalmente produce mquinas ms lentas.
Una tercera forma de combinar los componentes consiste en poner el procesador
completo en una pastilla [vase la figura 4-7(c)]. A pesar de que reduce de modo
extraordinario el nmero de pastillas (a una sola), adolece de desventajas. Primero, la
tecnologa necesaria para integrar un gran nmero de componentes en una pastilla es
diferente de la utilizada en los circuitos integrados de tipo MSI o en los de rebanada de 1 bit
y suele producir mquinas ms lentas. Adems, las tcnicas de diseo y fabricacin son
extraordinariamente complicadas y costosas. Por el contrario, cualquier competente
ingeniero en electrnica puede disear una computadora sencilla con pastillas MSI o de
rebanada de 1 bit sin demasiados problemas. Desde el punto de vista del fabricante, que
espera construir computadoras durante aos, quiz merezca la pena dominar las
tecnologas necesarias para hacer procesadores en una pastilla. Sin embargo, seguramente
no le interesar a una empresa que necesite slo una mquina de propsito especfico. As
pues, las opciones son: utilizar un procesador disponible en el comercio, contratar una
compaa especializada en el diseo y fabricacin de una pastilla de propsito especfico, o
construir el procesador con componentes M SI o de rodajas de bit.

95

UNA MICROARQUITECTURA TIPICA


Una vez estudiados todos los componentes bsicos con los que se construye el nivel
de microprogramacin, es el momento de ver cmo se interconectan. Como los principios
generales en esta rea son pocos y dispersos, abordaremos el tema por medio de un
ejemplo detallado.

La ruta de datos
La ruta de datos es la parte de la CPU que contiene ala ALU, sus entradas y sus
salidas. La de nuestro ejemplo se muestra en la figura 4-8. Contiene 16 registros idnticos
de 16 bits, rotulados PC, AC, SP, etc. , que forman una memoria de anotaciones accesibles
solamente al nivel de microprogramacin. Los registros rotulados O, + 1 y -1 se usarn
para guardar las constantes indicadas. En nuestros ejemplos sencillos el 0 nunca se usa,
pero probablemente se necesitar en una mquina ms complicada; de todos modos los
hemos incluido porque disponamos de ms registros que los que podamos utilizar. Los
restantes tienen nombre que explicaremos ms adelante. Cada registro puede sacar su
contenido a uno de los buses A o B o a ambos y tomarlo de un tercero, C, como se muestra
en la figura.

96

Los buses A y B alimentan una ALU de 16 bits que puede realizar cuatro funciones: A
+ B, A AND B, A y NOT A. Las dos lneas de control de la ALU, F 0 y F1, especifican la funcin
que se va a realizar. La ALU genera dos bits de estado derivados de su salida: N, que se
pone al cuando la salida de la ALU es negativa, y Z, que se pone al cuando dicha salida es
cero.
La salida de la ALU pasa por un registro de corrimiento que puede desplazarla un bit a
la izquierda o a la derecha, o bien no realizar ningn desplazamiento. Es posible desplazar
un registro, R, 2 bits a la izquierda, calculando R + R en la ALU y desplazando la suma un
bit ms en el registro de corrimiento.
Ni el bus A ni el B estn conectados directamente a ALU, sino que hay un par de
registros buffer (tampn) intermedios. Estos se necesitan porque la ALU es un circuito

97

combinacional, es decir, calcula continuamente la salida en funcin de las entradas y el


cdigo de funcin. Si no los hubiera, habra problemas cuando se calcule, por ejemplo, A: =
A + B. A medida que A fuera cargndose, el valor del bus A empezara a cambiar, lo que
hara que la salida de ALU y, por tanto, el bus C cambiaran tambin. En consecuencia se
guardara un valor incorrecto en A. En otras palabras, en la asignacin A: = A + B, el A del
lado derecho debe ser el valor original que A, no una extraa mezcla de bits del valor
anterior y reciente. Insertando registros buffer en los. buses A y B, podemos congelar los
valores originales de A y B al principio del ciclo, de modo que ALU se aisl de los cambios en
los buses a medida que el nuevo valor se vaya guardando en la memoria de anotaciones. La
carga de estos buffers est controlada por L0 y L1.
Vale la pena sealar que la solucin (v .g. , insertar biestables al frente de la ALU) no
es la nica. Si en vez de biestables, todos los registros son del tipo flip-flop, entonces es
tambin posible un desempeo de dos buses, cargando los operandos al inicio del ciclo en
los buses A y B y leyendo el resultado en uno de stos ms adelante en el ciclo. Los
intercambios entre los diseos de dos y tres buses abarcan complejidad, paralelismo y
cantidad de alambrado. Un tratamiento ms detallado de estos aspectos est ms all del
alcance de este libro.
Para la comunicacin con la memoria, hemos incluido en la micro arquitectura un MAR
y un MBR. El MAR puede cargarse a partir del registro de B, en paralelo con una operacin
de la ALU. La lnea M0 controla la carga del MAR. En las escrituras se puede cargar el MBR
con la salida del registro de corrimiento, en paralelo con el almacenamiento en la memoria
de anotaciones o en lugar de l M1 controla la carga del MBR a partir de la salida del registro
de corrimiento M2 y M3 controlan las lecturas y escrituras de memoria. En las primeras, los
datos ledos de la memoria pueden presentarse en la entrada izquierda de la ALU a travs
del multiplexor A, representado en la figura 4-8 por Amux. La lnea de control A0 determina
si el biestable A o el MBR se alimentan en la ALU. La micro arquitectura de la figura 4-8 es
similar ala de muchos de los circuitos comerciales de rebanadas de 1 bit disponibles.

Microinstrucciones
Para controlar la trayectoria de datos de la figura 4-8 se requiere de 61 seales. De
acuerdo a sus funciones, stas se pueden dividir en nueve grupos que a continuacin se
describen.

16 para controlar la carga del bus A a partir de registros internos.

16 para controlar la carga del bus B a partir de registros internos.

16 para controlar la carga de la memoria de anotaciones a partir del bus


C.

2 para controlar los registros de A y B. 2 para controlar la funcin de la


ALU.

2 para controlar al registro de corrimiento. 4 para controlar el MAR y el


MBR.

2 para indicar una lectura o una escritura en memoria.

1 para controlar el Amux.


Con los valores de las 61 seales podemos realizar un ciclo de nuestra ruta de datos.
Un ciclo consiste en vaciar los valores en los buses A y B, almacenarlos temporalmente en
los registros de A y B, en pasarlos a travs de la ALU y el registro de corrimientos y en
almacenar el resultado en la memoria interna y en el MBR o en ambos. Adems, puede
cargarse el MAR e iniciarse un ciclo de memoria. Como primera aproximacin, podramos
tener un registro de control de 61 bits, cada uno de ellos, para una seal de control. Un bit
a 1 significa que la seal est activada y uno a O que no lo est.
Sin embargo, podemos reducir en mucho el nmero de bits que necesitan para
controlar la ruta de datos, al precio de un pequeo incremento en la circuitera. Para
empezar, tenemos 16 bits para controlar la entrada al bus A, lo que permite 216
combinaciones de los registros. Desafortunadamente, slo estn permitidas 16: cada uno de
los 16 registros, excluyendo los dems. Por tanto, podemos codificar la informacin del bus
A en 4 bits y utilizar un decodificador para generar las 16 seales de control. Lo mismo vale
para el bus B.

98

Esta situacin es algo diferente en el bus C. En principio, es posible tener


almacenamientos mltiples en la memoria de anotaciones, pero esta prctica es casi
siempre intil y la mayora de las mquinas no la permiten. As pues, tambin podremos
codificar el control del bus C con 4 bits. Habiendo ahorrado 3 x 12 = 36 bits, necesitamos
ahora slo 25 bits de control para activar la ruta de datos, L 0 y L1 siempre se necesitan en
un momento determinado del ciclo de mquina, por lo que puede activarlos el reloj,
quedando 23 bits de control. Una seal adicional, no estrictamente necesaria pero a
menudo til, es aquella que permite o inhibe el almacenamiento del bus C en la memoria
interna. En algunas situaciones slo interesa generar las seales N y Z, pero no se desea
almacenar el resultado. Con este bit adicional que llamaremos ENC (habilita C), podemos
indicar que se almacene el bus C (ENC = 1) o no (ENC = O).
En este momento estamos en condiciones de controlar la ruta de datos con 24 bits.
Notamos ahora que RD puede usarse para cargar el MBR con el bus de datos del sistema y
WR para permitir la salida del MBR al mismo bus. Esta observacin reduce a 22 el nmero
de seales de control independientes.

El siguiente paso en el diseo de la micro arquitectura es inventar un formato de


microinstruccin que contenga 22 bits. La figura 4-9 muestra uno de los posibles, con dos
campos adicionales, COND y ADDR, que se describirn en seguida. La microinstruccin
contiene 13 campos, 11 de los cuales son:
AMUX - Controla la entrada izquierda ala ALU: O; tampn de A, 1 = MBR.
ALU
Funcin de la ALU: O=A+B, 1=A AND B, 2=A, 3= A.
SH
- Funcin del registro de corrimiento: O = nada, 1 = a la derecha, 2 = a la
izquierda.
MBR
- Carga del MBR a partir del registro de corrimiento: O = no carga, 1 = carga.
MAR
- Carga del MAR a partir del registro de B: O = no carga, 1= carga.
RD
- Peticin de lectura de memoria: O = no pide, 1 = carga el MBR de memoria.
WR
- Peticin de escritura en memoria: O = no pide, 1 = escribe el MBR en
memoria.
ENC
- Control de almacenamiento en registros de memoria interna: O = no
almacena, 1 = almacena.
C
- Selecciona el registro dnde almacenar si ENC = 1: O = PC, 1 = AC, etc.
B
- Selecciona la fuente del bus B: O = PC, 1 = AC, etc.
A
- Selecciona la fuente del bus A: O = PC, 1 = AC, etc.
El orden de los campos es completamente arbitrario. Se ha elegido el orden que
minimice el cruce de lneas en una figura que hay ms adelante. (Este criterio no es tan
disparatado como parece; los cruces de lneas suelen corresponder- se con cruces de
conexiones en circuitos impresos o integrados, lo que causa problemas en diseos
bidimensionales.)

99

Cronologa de las microinstrucciones


Aunque nuestra exposicin de la forma en que una microinstruccin puede controlar la
ruta de datos durante un ciclo es casi completa, hemos olvidado un asunto importante: la
cronologa. Un ciclo bsico de ALU consiste en cargar los registros A y E, darle tiempo ala
ALU para realizar su trabajo y almacenar entonces el resultado. Es evidente que estos
sucesos deben tener lugar en esa secuencia. Si intentramos almacenar el bus C en la
memoria de anotaciones antes de cargar los registros A y E, se guardara basura en lugar
de datos tiles. Para obtener la secuencia correcta, introducimos un reloj de cuatro fases, es
decir, con cuatro sub ciclos, como el de la figura 4-5. He aqu los eventos clave durante
cada uno de los sub ciclos:

Carga la siguiente microinstruccin a ejecutarse en un registro denominado MIR


(Registro de Microinstruccin).

Salida del contenido de los registros a los buses A y E, y su captura por los
registros A y E.

Cuando las entradas de la ALU estn estabilizadas, hay que dar tiempo ala ALU y
al registro de corrimiento para que produzcan una salida estable y cargar el MAR
si es necesario.

Ahora que la salida del registro de corrimiento est estabilizada, se almacena el


bus C en la memoria de anotaciones y en el MER si es necesario.
La figura 4-10 es un diagrama de bloques detallado de la micro arquitectura de
nuestra mquina completa. Puede parecer impresionante a primera vista, pero merece la
pena estudiarla en detalle. Cuando el lector entienda completamente cada bloque y cada
lnea, podr avanzar en la comprensin total del nivel de microprogramacin. El diagrama
de bloques tiene dos partes: la ruta de datos, a la izquierda, que ya estudiamos de modo
pormenorizado, y la seccin de control, de la que trataremos ahora.

100

La parte ms voluminosa e importante de la porcin de control de la mquina es la


memoria de control. Es donde se guardan las microinstrucciones. En algunas mquinas es
una memoria de lectura solamente, en otras es de lectura y escritura. En nuestro ejemplo
las microinstrucciones sern de 32 bits y el espacio de direcciones de microinstruccin
constar de 256 palabras, por lo que la memoria de control ocupar un mximo de 256 x 32
= 8192 bits.
Como cualquier otra memoria, la de control necesita un MAR y un MBR. Llamaremos al
MAR el M PC (Contador de Microprograma), porque su nica funcin es sealar la siguiente
instruccin que va a ejecutarse. El MBR ser el MIR ya mencionado. Es importante darse
cuenta de que la memoria de control y la principal son completamente diferentes, teniendo
la primera el microprograma y la ltima el programa en nivel de mquina convencional.
En la figura 4-10 se observa que la memoria de control intenta continuamente copiar
la microinstruccin direccionada por el M PC al MIR. Sin embargo, el MIR solamente se
carga durante el primer sub ciclo, como indica la lnea de trazos que lo conecta con el reloj.
Durante los otros tres sub ciclos no se altera, independientemente de lo que le suceda al
MPC.
Durante el segundo sub ciclo, el MIR se encuentra estabilizado y sus campos empiezan
a controlar la ruta de datos. En particular, los campos A y B hacen que los datos salgan a
los buses A y B. Los bloques "Decodificador de A " y "Decodificador de B" del diagrama
proporcionan la decodificacin de 4 a 16 de cada campo, necesaria para activar las lneas
SAL1 y SAL2 de los registros [vase figura 4-2(b)]. El reloj activa los registros de A y de B
durante este sub- ciclo, proporcionando entradas estables a la ALU durante el resto del

101

ciclo. Mientras los datos salen a los buses A y B, la unidad de "Incremento" de la seccin de
control calcula M PC + 1, en preparacin de la carga de la siguiente microinstruccin en
secuencia, durante el ciclo siguiente. La ejecucin de instrucciones se puede acelerar
traslapando estas dos operaciones.
En el tercer sub ciclo se les da a la ALU y al desplazador tiempo suficiente para que
produzcan resultados vlidos. El campo de microinstruccin AMUX determina la entrada
izquierda a la ALU; la entrada derecha es siempre el tampn de B. Aunque la ALU es un
circuito combinacional, el tiempo que emplea en calcular la suma est determinado por el
tiempo de propagacin de los acarreos, no por el retraso normal de las puertas. Mientras la
ALU y el desplazador estn calculando, el MAR se carga con el contenido del bus B, si el
campo MAR de la microinstruccin est a 1.
Durante el cuarto y ltimo sub ciclo, el bus C se puede almacenar en la memoria de
anotaciones y en el MBR, segn los campos ENC y MBR. La caja rotulada "Decodificador de
C" toma ENC, la cuarta lnea de reloj y el campo C de la microinstruccin como entrada y
genera las 16 seales de control. En su interior realiza una decodificacin de 4 a 16 del
campo C y entonces hace el y lgico de sus salidas con el resultado de hacer el y lgico del
sub ciclo 4 con ENC. Por tanto, slo se carga un registro de anotaciones si:
1. ENC= 1.
2. Es el sub ciclo 4.
3. El campo C selecciona el registro.
El MBR tambin se carga durante el cuarto sub ciclo si MBR=I.
Las dos seales que controlan la memoria, RD y WR, estn activas mientras estn
presentes en el MIR. En efecto, los campos correspondientes del MIR actan como si fueran
biestables.

Secuenciamiento de las microinstrucciones


Lo nico que nos queda por ver es cmo se elige la siguiente microinstruccin. Aunque
la mayora de las veces basta extraer la siguiente microinstruccin en secuencia, se necesita
algn mecanismo que permita saltos condicionales en el microprograma para tomar
decisiones. Por esta razn dotamos a cada microinstruccin de dos campos adicionales:
ADDR, que es la direccin de un sucesor potencial de la microinstruccin en curso, y COND,
que determina si la siguiente microinstruccin se extrae de M PC + 1 o de ADDR. Cada
microinstruccin contiene potencialmente un salto condicional. Se ha tomado esta decisin
porque los saltos condicionales son muy comunes en los microprogramas y, al permitir que
toda microinstruccin tenga dos posibles sucesores, los microprogramas se ejecutan ms
rpido que si se tuviera que ajustar alguna condicin en una microinstruccin y examinarla
en la siguiente. La mayora de las arquitecturas usan esta estrategia de una forma u otra.
La eleccin de la siguiente microinstruccin la realiza la caja rotulada "Lgica de
Microsecuenciamiento" durante el sub ciclo de 4, cuando las salidas de la ALU N y Z son
vlidas. La salida de esta caja controla el multiplexor M (Mmux), que encamina M PC + 1 o
ADDR al M PC, que determinar cul ser la siguiente microinstruccin a extraer. Hemos
proporcionado al microprogramador cuatro alternativas posibles ajustando COND como
sigue:
0 = No saltar; la siguiente microinstruccin se toma de M PC + 1.
1 = Saltar a ADDR si N= 1.
2 = Saltar a ADDR si Z = 1.
3 = Saltar a ADDR incondicionalmente.
La lgica de microsecuenciamiento combina los dos bits de la ALU, N y Z, y los dos
bits de COND para generar la salida. Llamando a stos 1 y D (izquierdo y derecho), la seal
correcta ser.
Mmux = IDN + IDZ + ID = DN + IZ + ID
Donde + significa O INCLUSIVO. Expresado con palabras, la seal de control a Mmux
es 1 (encaminando ADDR al M PC) si ID es 012 y N= 1, si ID es 102 y Z = 1, o si ID es 112.
En caso contrario es 0 y se extrae la siguiente microinstruccin en secuencia. El circuito que

102

calcule la seal puede construirse con componentes SSI, como en la figura 3-3(b), o ser
parte de una PLA, como en la figura 3-16.
Para que nuestro ejemplo de mquina sea ms realista, supondremos que un ciclo de
memoria principal dura ms que una microinstruccin. En particular, si esta ltima
comienza una lectura de memoria poniendo RD al, tambin debe tener RD = 1 en la
siguiente que ejecute (que puede estar o no en la posicin siguiente de la memoria de
control) .El dato no estar disponible hasta que hayan transcurrido dos microinstrucciones
despus de iniciar la lectura. Si el microprograma no tuviera nada que hacer, deber tener
slo RD = 1, y se desperdiciar para cualquier trabajo til. Del mismo modo una escritura
en memoria tambin requerir dos microinstrucciones para completarse.

UNA MACROARQUITECTURA TIPICA


Para continuar nuestro ejemplo del nivel de microprogramacin, pasaremos ahora a la
arquitectura del nivel de mquina convencional que deber ser soportado por el intrprete
que se ejecute en la mquina de la figura 4-10. Por conveniencia, llamaremos macro
arquitectura a la arquitectura del nivel 2 o del3, y as distinguirla de la arquitectura del nivel
1 o micro arquitectura. (Para los propsitos de este captulo, ignoraremos el nivel 3, ya que
sus instrucciones son en gran parte las del nivel 2 y sus diferencias no tienen importancia
aqu.) De modo similar, a las instrucciones del nivel 2 las llamaremos macroinstrucciones.
As, durante este captulo, llamaremos macroinstrucciones a las instrucciones normales del
nivel de mquina convencional, como ADD, MOVE, etc. (La razn por la que repetimos esto
es que algunos ensambladores proporcionan la posibilidad de definir macros, en
ensamblador, que no tiene nada que ver con lo que aqu entendemos como
macroinstrucciones.) Algunas veces nos referiremos a nuestro ejemplo de mquina de nivel
1 como Mic-1 ya la de nivel 2 que soporta como Mac-1. Antes de describir la Mac-1, vamos
a divagar un poco para motivar el diseo.

Pilas
Una macro arquitectura moderna debera disearse teniendo presentes las
necesidades de los lenguajes de alto nivel. Uno de los aspectos ms importantes del diseo
es el direccionamiento. Para ilustrar el problema que vamos a resolver, consideremos el
programa Pascal de la figura 4-11(a). El programa principal inicializa dos vectores, x e y,
con valores tales que XK = k e YK = 2k + 1. Luego calcula su producto interno (tambin
llamado producto escalar). Siempre que necesite multiplicar dos nmeros enteros, llama a
la funcin mulp. (Supngase que el compilador es para una microcomputadora y slo
realizar un subconjunto del Pascal que no incluye el operador de multiplicacin.)

103

Los lenguajes con estructura de bloques, como el Pascal, suelen realizarse de modo
que, al salir de un procedimiento o funcin, se libere la memoria usada por las variables
locales. La forma ms sencilla de hacerlo consiste en utilizar una estructura de datos
llamada pila. Una pila consta de bloque de memoria contigua, que contiene ciertos datos, y
de un apuntador a la pila (SP), que dice dnde est la cima de ese bloque. La base de la
pila est en una direccin fija que no interesa en adelante. La figura 4-12(a) ilustra una
pila que ocupa seis palabras de memoria. La base de la pila est en la direccin 4020 y la
cima, donde apunta SP, est en la 4015. Nuestras pilas crecern desde1as direcciones altas
de memoria a las bajas, pero la otra alternativa tambin es buena.
Se definen varias operaciones en las pilas. Las dos ms importantes son PUSH X y POP
y (desapila Y), PUSH avanza el apuntador de pila (decrementndolo en nuestro ejemplo) y
luego pone X en la posicin de memoria a la que ahora apunta SP. PUSH incrementa el
tamao de la pila en un elemento, POP Y, por el contrario, reduce el tamao de la pila

104

guardando el ltimo elemento en Y, eliminndolo de ella incrementando la direccin del


apuntador de pila. La figura 4-12(b) muestra el aspecto de la pila de la figura 4-12(a)
despus de haber apilado una palabra que contiene un 5.

Otra operacin que puede realizarse en una pila es avanzar el apuntador de pila sin
apilar ningn dato. Esto suele hacerse cuando se entra en un procedimiento o funcin, para
reservar espacio a las variables locales. La figura 4-13(a) muestra la asignacin de
memoria durante la ejecucin del programa principal de la figura 4-11. Hemos supuesto
arbitrariamente que la memoria consta de 4096 palabras de 16 bits y que las posiciones
desde la 4021 a la 4092 estn utilizadas por el sistema operativo y, por tanto, no se pueden
usar para guardar variables, la variable k del programa Pascal se guarda en la direccin
4020 (todas las direcciones en decimal). El vector x requiere 20 palabras, de la 4000 ala
4019. El vector y empieza en la 3980 para y[l] y se extiende ala 3999 para y[20]. Mientras

105

el programa principal se ejecuta fuera de mulp, SP tiene el valor 3980, con lo cual indica
que esta direccin es la ltima de la pila.
Cuando el programa principal quiere llamar a mulp, primero apila los parmetros de la
llamada, 2yk;y luego ejecuta la instruccin de llamada, que apila la direccin de retorno, de
manera que mulp sepa dnde volver cuando termine. Cuando empieza mulp, SP tiene 3977.
Lo primero que hace es avanzar el apuntador de pila en 2 unidades, para reservar dos
palabras para sus variables locales, p y j. En este punto SP vale 3975, como muestra la
figura 4-13(b). Las cinco palabras de la cima de la pila constituyen la parte de pila
utilizada por mulp y se liberarn cuando termine. Las palabras 3979 y 3978 estn rotuladas
como a y b, ya que son los nombres de los parmetros formales de mulp, pero, por
supuesto, contienen 2 y k respectivamente.

Cuando se haya terminado mulp y se haya llamado a interno, la configuracin de la


pila ser la mostrada en la figura 4-13(c). Cuando interno llame a mulp, la pila estar
como muestra la figura 4-13(d). Ahora nos encontramos con el problema: qu cdigo
generar el compilador para accesar a los parmetros de mulp ya sus variables locales? Si
intentara leer p usando una instruccin semejante a MOVE 3976,DONDE, mulp funcionara
cuando se le llama desde el programa principal, pero no cuando se le llamara desde interno.
De manera similar, MOVE 3971,DONDE funcionar cuando se le llame desde in- terno, pero
no desde el programa principal. Lo que se necesita realmente es alguna forma de decir
"extrae la palabra que est una direccin por encima del apuntador de pila". En otras
palabras, el Mac-1 necesita un modo de direccionamiento que extraiga o almacene una
palabra situada a una distancia conocida del apuntador de pila (o algn modo de
direccionamiento equivalente).

106

El juego de macroinstrucciones
Con este modo de direccionamiento en mente, ahora estamos listos para examinar la
arquitectura del Mac-1. Bsicamente, consta de una memoria de 4096 palabras de 16 bits y
tres registros visibles al programador de nivel 2. Los registros son el contador del
programa, PC, el apuntador de pila, SP, y el acumulador, AC, que se usa para mover datos,
hacer aritmtica y otros propsitos. Hay disponibles tres modos de direccionamiento:
directo, indirecto y local. Las instrucciones que usan direccionamiento directo contienen, en
sus 12 bits menos significativos, una direccin absoluta de memoria. Estas instrucciones son
tiles para accesar a las variables globales, como x en la figura 4-11. El direccionamiento
indirecto permite que el programador calcule una direccin de memoria, la ponga en AC y
lea o escriba la palabra direccionada. Esta forma de direccionamiento es muy general y se

107

utiliza para accesar a elementos de un vector, entre otras cosas. El direccionamiento local
especifica un desplazamiento respecto al SP y se utiliza para accesar a las variables locales,
como ya hemos visto. Estos tres modos combinados proporcionan un sistema de
direccionamiento simple pero adecuado. La figura 4-14 muestra el juego de instrucciones
del Mac-1. Cada instruccin contiene un cdigo ya veces una direccin de memoria o una
constante. La primera columna de la codificacin binaria de la instruccin; la segunda da su
nombre nemotcnico en lenguaje ensamblador; la tercera tiene su nombre completo, y la
cuarta describe la que hace mediante un fragmento en Pascal. En esos fragmentos m[x]
significa la palabra de memoria x. As, LODD carga el acumulador con la palabra de
memoria especificada por sus 12 bits menos significativos. Su direccionamiento es, por
tanto, directo, mientras que el de LODL; que carga el acumulador con la palabra situada a
una distancia x por encima de SP, es local. LODD, STOD, ADDD y SUBD realizan las cuatro
operaciones bsicas usando direccionamiento directo: LODL, STOL, ADDL y SUBL las
realizan con direccionamiento local.

Binario
0000xxxxxxxxxxxx
0001xxxxxxxxxxxx

Nemotcnico Instruccin
LODD
Carga directa
STOD
Almacena
directo
0010xxxxxxxxxxxx ADDD
Suma directo
0011xxxxxxxxxxxx SUBD
Resta directo
0100xxxxxxxxxxxx JPOS
Salta si
positivo
0101xxxxxxxxxxxx JZER
Salta si cero
0110xxxxxxxxxxxx JUMP
Salta
0111xxxxxxxxxxxx LOCO
Carga
constante
1000xxxxxxxxxxxx LODL
Varga local
1001xxxxxxxxxxxx STOL
Almacena local
1010xxxxxxxxxxxx SAL
Suma local
1011xxxxxxxxxxxx SUBL
Resta local
1100xxxxxxxxxxxx JNEG
Salta si
negativo
1101xxxxxxxxxxxx JNZR
Salta si no
cero
1110xxxxxxxxxxxx CALL
Llama a
proced
1111000000000000 PSHI
Apila indirecto
1111001000000000 POPI
1111010000000000
1111011000000000
1111100000000000
1111101000000000

PUSH
POP
RETN
SWAP

11111100yyyyyyyy INSP
11111110yyyyyyyy DESP

Significado
ac: =m[x]
m [x]:= ac
ac:=ac + m[x]
ac:=ac - m[x]
if ac 0 then pc:=x
if ac = 0 then pc:=x
pc:=x
ac:=x(0 x 4095)
ac:=m[sp + x]
m[x + sp]: =ac
ac:=ac + m[sp + x]
ac:=ac - m[sp - x]
if ac < 0 then pc:=x
if ac 0 then pc:=x

sp:=sp 1;
m[sp]:=pc; pc=x
sp:=sp 1;
m[sp]:=m[ac]
Dasapila
m[ac]:= m[sp]; sp:=sp
indirecto
+1
Apila
sp:=sp 1; m[sp]:=ac
Desapila
ac:=m[sp]; sp:=sp + 1
Retorno
pc:=m[sp];sp:=sp+1
Intercambia ac tmp:=ac; ac:=sp;
y sp
sp:=tmp
Incrementa sp sp:=sp + y (0 y
255)
Decrementa
sp:=sp - y (0 y

108

sp

255)

xxxxxxxxxxxx es una direccin de mquina de 12 bits; en la columna 4 se


llama x.
Yyyyyyyy es una constante de 8 bits; en la columna 4 se llama y
Fig. 4-14. El conjunto de instrucciones del Mac-1
Hay cinco instrucciones de salto, una incondicional (JUMP) y cuatro condicionales
(JPOS, JZER, JNEG y JNZE). JUMP siempre copia los 12 bits menos significativos al contador
de programa, mientras que las otras cuatro slo la hacen si se cumple la condicin
especificada.
LOCO carga en AC una constante de 12 bits en el rango de O a 4095 (inclusive). PSHI
apila la palabra cuya direccin est en AC. La operacin inversa es POPI, que desapila una
palabra y la guarda en la posicin de memoria direccionada por AC, PUSH y POP sirven para
manipular la pila de diversas maneras. SW AP intercambia los contenidos de AC y SP, la que
es til cuando hay que incrementar o decrementar SP en una cantidad desconocida en
tiempo de compilacin. Tambin resulta til inicializar SP al principio de la ejecucin. Las
instrucciones INSP y DESP se utilizan para aumentar o disminuir SP en cantidades conocidas
al momento de la compilacin. Debido a la falta de espacio de codificacin, los
desplazamientos se han limitado a 8 bits. Por ltimo, la instruccin CALL se usa para llamar
a un procedimiento, guardando la direccin de retorno en la pila y RETN regresa de un
procedimiento, desapilando la direccin de retorno y almacenndola en el registro PC.
Hasta ahora, la mquina no tiene instrucciones de entrada / salida, ni se le agregarn,
pues no las necesita. En su lugar usa E/S por memoria. Una lectura de la direccin 4092
dar una palabra de 16 bits con el siguiente carcter ASCII del dispositivo normal de
entrada en los 7 bits menos significativos y ceros en los 9 ms significativos. Cuando haya
un carcter disponible en la 4092, se pondr a 1 el bit ms significativo del registro de
estado de la entrada, con direccin 4093. La lectura de la direccin 4092 pone a cero la
4093. La rutina de entrada estar normalmente en una pequea iteracin de espera a que
la 4093 se haga negativa. Cuando suceda, cargar el contenido de la 4092 y regresar.
La salida se realizar en forma similar. Una escritura en la 4094 tomar los 7 bits
menos significativos de la palabra escrita y los copiar en el dispositivo normal de salida. El
bit ms significativo del registro de estado de la salida, de direccin 4095, se borrar,
volvindose a poner a 1 cuando el dispositivo de salida est listo para recibir un nuevo
carcter. Los dispositivos normales de entrada y salida pueden ser un teclado y una
pantalla, una lectora de tarjetas y una impresora o alguna otra combinacin.
Un ejemplo de cmo se programa con este juego de instrucciones se observa en la
figura 4-11(b), que es el programa de la figura 4-11(a), compilado a lenguaje
ensamblador por un compilador que no hace ninguna optimizacin, ya que un cdigo
optimizado dificultara el seguimiento del ejemplo: Los nmeros 0 a 19 en los comentarios,
identificados por una barra inclinada en el lenguaje ensamblador, ayudan a ver las partes
que se corresponden de las dos mitades de la figura, OUTNUM 1 y STOP son rutinas de
biblioteca que realizan las funciones obvias.

109

MICROPROGRAMACIN: UN EJEMPLO
Habiendo especificado la micro arquitectura y la macro arquitectura en detalle, hemos
de abordar ahora el tema de la implementacin de la segunda. Qu aspecto tendr un
programa que se ejecute en la primera e interprete la segunda? Cmo funcionar? Antes
de contestar estas preguntas, debemos considerar cuidadosamente qu lenguaje elegimos
para microprograma .

El lenguaje micro ensamblador


En principio, podra escribir microprogramas en binario, a razn de 32 bits por
microinstruccin. Los programadores masoquistas podran disfrutar con ello, pero nadie
ms. Por tanto, necesitamos un lenguaje simblico en el que expresar los microprogramas.
Una notacin posible es hacer que el microprogramador especifique una microinstruccin
por lnea, nombrando cada campo distinto de cero y su valor. Por ejemplo, para sumar AC a
A y guardar el resultado en AC, podra escribir .
ENC = 1, C = 1, B = 1, A= 10
Muchos lenguajes de microprogramacin utilizan una notacin similar. Pero es una
monstruosidad, al igual que los lenguajes que la utilizan.
Una idea mucho mejor es usar una notacin de lenguaje de alto nivel, reteniendo el
concepto de una lnea por microinstruccin. Es concebible escribir microprogramas en un
lenguaje de alto nivel ordinario, pero como la eficiencia es de crucial importancia, se utiliza
un lenguaje ensamblador, que los definimos como un lenguaje simblico cuyas instrucciones
se correspondan biunvocamente con las del lenguaje mquina. Recurdese que 25% de
ineficiencia en el microprograma desacelera la mquina completa 25%. Llamaremos a
nuestro lenguaje Micro ensamblador de Alto Nivel ("LMAN"). En LMAN los almacenamientos
en los 16 registros de anotaciones, en el MAR o en el MBR, se representan por sentencias
de asignacin. As, nuestro ejemplo anterior, en LMAN, se escribira ac : = a + ac (como
nuestra intencin es que el LMAN se parezca al Pascal, adoptaremos el convenio del Pascal
que consiste en utilizar nombres en letra cursiva minscula para los identificadores).
Para indicar el uso de las funciones 0, 1, 2, y 3 de la AL U, podemos escribir
respectivamente:
ac: = a + ac, a: = and (ri, mascp), ac: = a ya: = inv(a),
Por ejemplo, donde and se refiere al "y booleano" e inv la inversin. Los
desplazamientos pueden representarse por las funciones desizq si son a la izquierda y
desder si son a la derecha, como en
tir : = desizq (tir + tir)
Que pone el tir en los buses A y E, realiza la suma y desplaza sta a la izquierda 1 bit
antes de almacenarla de nuevo en el tir.
Los saltos incondicionales pueden representarse por sentencias goto y los
condicionales pueden examinar n o z. Por ejemplo:
if n then goto 27
Sin embargo, se presenta un pequeo problema cuando deseamos examinar un
registro pero no almacenarlo. Cmo especificamos el registro que vamos a examinar? Para
resolver este problema introducimos la seudo variable alu, a la que se puede asignar un
valor simplemente para indicar el contenido de la ALU.
Por ejemplo,
alu : = tir, if n then goto 27;
Significa que se ha de pasar el tir por la ALU (cdigo ALU = 2) para que se pueda
examinar su contenido" Ntese que el uso de alu significa que ENC = 0.
Para indicar las lecturas o escrituras en memoria, simplemente pondremos rd o wr en
el programa fuente. El orden de las distintas partes de una sentencia fuente es, en
principio, arbitrario, pero intentaremos colocarlas en el orden en que se ejecutan para
aumentar la legibilidad. La figura 4-15 ofrece algunos ejemplos de sentencias LMAN junto

110

con sus microinstrucciones correspondientes.

Sentencia
mar:=pc; rd
rd
ir:=mbr
pc:=pc + 1
mar:=ir; mbr:=ac; wr
alu:=tir; if n them gato 15
ac:=inv(mbr)
tir:= lshift (tir); if n then goto
25
alu:=ac; if z them gato 22
ac:= band (ir, amask); goto 0
sp:=sp + (-1); rd
tir:= lshift (ir + ir); if n then
goto 69

A
M
U
X
0
0
1
0
0
0
1

C
O
N
D
0
0
0
0
0
1
0

A
D
D
R
00
00
00
00
00
15
00

A
L
U
2
2
2
0
2
2
3

M M
E
S B A R W N
H R R D D C
0 0 1 1 0 0
0 0 0 1 0 0
0 0 0 0 0 1
0 0 0 0 0 1
0 1 1 0 1 0
0 0 0 0 0 0
0 0 0 0 0 1

C
0
0
3
0
0
0
1

B
0
0
0
6
3
0
0

A
0
0
0
0
1
4
0

4 25

0
0
0

2
3
0

2
1
0

0
0
0

0
0
0

0
0
0

0
0
1

0
0
0

0
1
1

0
1
2

0
8
2

1 22
3 00
7 00

3 69

Fig. 4-15. algunas sentencias LMAN y sus microinstrucciones correspondientes


El ejemplo de microprograma
Hemos llegado finalmente al punto donde podemos engarzar todas las piezas. La
figura 4-16 es un microprograma que funciona en el Mic-1 e interpreta el Mac-1. Es un
programa sorprendentemente pequeo, que ocupa slo 79 lneas. Ahora la eleccin de los
nombres de los registros de la figura 4-8 se hace evidente: PC, AC y SP se usan para
guardar los tres registros del Mac-1. IR es el registro de instruccin que contiene la
macroinstruccin en curso de ejecucin. TIR es una copia temporal del IR, utilizada para
decodificar el cdigo de operacin. Los tres registros siguientes se utilizan para guardar las
constantes indicadas. AMASK es la mscara de direcciones, 007777 (octal), y se usa para
separar el cdigo de operacin y los bits de direccin. SMASK es la mscara de la pila
000377 (octal), que se utiliza en las instrucciones INSP y DESP para aislar el
desplazamiento de 8 bits. Los 6 registros restantes no tienen ninguna funcin asignada y
pueden usarse al arbitrio del microprogramador.

111

Como todos los intrpretes, el microprograma de la figura 4-16 tiene un bucle


principal que extrae, decodifica y ejecuta instrucciones del programa que interpreta, que en
este caso consiste en una serie de instrucciones de nivel 2. Su bucle principal comienza por
la lnea O, donde empieza a extraer la macro- instruccin a la que apunta el PC. Mientras
espera que la instruccin llegue, incrementa el PC y sigue manteniendo activa la seal RD.
Cuando llega la instruccin, en la lnea 2, la guarda en el IR y simultneamente examina su
bit ms significativo (el 15). Si es 1, la decodificacin contina en la lnea 28 y, en caso
contrario, en la 3. Suponiendo, por el momento, que la instruccin es LODD, en la lnea 3 se
examina el bit 14 y se carga el TIR con la instruccin original desplazada 2 bits a la
izquierda (un bit con el sumador y el otro con el registro de corrimiento). Ntese que el
estado N de la ALU est determinado por su salida, en la que el bit 14 es el ms
significativo, ya que IR + IR desplaza el IR en lugar a la izquierda. La salida del registro de
corrimiento no afecta a los bits de estado de la ALU.
Todas las instrucciones que tengan 00 en sus dos bits ms significativos llegarn a la
lnea 4, donde se las examinar el bit 13, que mandar alas que empiecen por 000 a la
lnea 5 ya las que empiecen por 001 a la lnea 11. La lnea 5 es un ejemplo de
112

microinstruccin con ENC = 0; solamente examina el TIR, pero no lo cambia. Segn sea el
resultado de esta comprobacin, se seleccionar el cdigo de LODO o el de STOD.
Si es LOOD, el micro cdigo deber primero extraer la palabra direccionada
directamente, cargando los 12 bits menos significativos del IR en el MAR. En este caso, los
4 bits ms significativos son cero, pero para STOD y otras micro- instrucciones no lo ser.
Sin embargo, como el MAR slo tiene 12 bits de anchura, los bits de cdigo de operacin no
afectarn a la lectura. En la lnea 7 el microprograma no tiene nada que hacer y, por lo
tanto, slo espera. Cuando llega la palabra, el microprograma la copia al AC y salta al
comienzo del bucle. STOD, AODD y SUBO son similares. Lo nico que cabe mencionar es
cmo se realiza la resta. Usa la siguiente propiedad de la aritmtica en complemento a dos:
x -y = x + (- y) = x + (
y + 1) = x + 1 + y
La suma de 1 al AC se hace en la lnea 16, que de otro modo se hubiera
desperdiciado, como la 13.
El micro cdigo de JPOS comienza en la lnea 21. Si AC<O, la bifurcacin no se realiza
y JPOS termina inmediatamente saltando de nuevo al bucle'(ciclo) principal. En cambio si
AC >= 0, se extraern los 12 bits menos significativos del IR haciendo el y lgico de ste
con la mscara 007777 y guardando el resultado en el PC. No cuesta aqu nada eliminar los
bits de cdigo de operacin y por ello es aconsejable hacerlo. Si hubiera costado una
microinstruccin adicional, tendramos que examinar muy cuidadosamente si el tener
basura en los 4 bits ms significativos del PC puede causar algn problema ms tarde.
En cierto modo, JZER (lnea 23) funciona en forma contraria a JPOS. En JPOS, si la
condicin se cumple, no se produce el salto y el control vuelve al bucle principal. En JZER se
produce el salto si se cumple la condicin. Como el cdigo para realizar el salto es el mismo
en todas las instrucciones de salto, podemos ahorrar micro cdigo yendo a la lnea 22
siempre que sea posible. Este estilo de programacin normalmente se considerara primitivo
si se tratara de un programa de aplicacin; pero en un microprograma no se tienen esos
escrpulos. El rendimiento es lo ms importante.
JUMP y LOCO son evidentes, por lo que la siguiente rutina de ejecucin interesante es
la de LODL. Primero se calcula la direccin absoluta de memoria sumando el desplazamiento
contenido en la instruccin al SP. Despus se inicia la lectura de memoria. Como el resto del
cdigo es igual que el de LODL y LODD, usaremos las lneas 7 y 8 para ambos. No slo se
ahorra memoria de control sin prdida de velocidad, sino que tambin hay menos cdigo
que depurar. STOL, ADDL y SUBL son similares. El cdigo de JNEG y JNZE es similar al de
JZER y JPOS, respectivamente (y no al contrario). CALL decrementa primeramente el SP y
entonces apila la direccin de retorno, saltando finalmente al procedimiento. La lnea 49 es
casi idntica a la lnea 22; si hubieran sido exactamente iguales, podramos haber eliminado
la 49 poniendo en la 48 un salto incondicional a la 22. Desafortunadamente, debemos
mantener activo WR durante otra microinstruccin.
Las macroinstrucciones restantes tienen 1111 en sus 4 bits ms significativos, por lo
que se necesita decodificar los bits del campo de direccin para distinguirlas. Sus rutinas de
ejecucin son tan simples que no las vamos a comentar.

Observaciones sobre el microprograma


Aunque hemos estudiado el microprograma con bastante detalle, es interesante hacer
algunos comentarios. En la figura 4-16 incrementamos el PC en la lnea 1. Podamos
tambin haberlo incrementado en la lnea O, dejando libre la lnea 1 para alguna otra cosa
mientras se espera. En esta mquina no hay nada que hacer, pero en una real el
microprograma tendra la oportunidad de examinar los dispositivos de E/S en espera de
servicio, refrescar la memoria o alguna otra cosa.
Si hubiramos dejado la lnea 1 como est, podramos, sin embargo, acelerar la
mquina modificando la lnea 8 para leer
mar: = pc,. ac : = mbr; rd,. goto 1;
En otras palabras, podemos empezar la extraccin de la siguiente microinstruccin
antes de terminar la ejecucin de la que est en curso. Esta posibilidad es una forma
primitiva de escalonamiento o seriacin. Tambin se puede aplicar el mismo truco a otras

113

rutinas de ejecucin.
Est claro que una proporcin considerable del tiempo de ejecucin de cada
microinstruccin est dedicado a decodificarla bit por bit. Esta observacin seala que se
puede cargar el M PC bajo control del microprograma. En muchas computadoras existentes
la micro arquitectura tiene medios fsicos para extraer los cdigos de operacin de las
macroinstrucciones y pasarlos al MPC, donde efecta una operacin de seleccin mltiple.
Por ejemplo, si pudiramos desplazar el IR 9 bits a la derecha, borrar los 9 bits ms
significativos y poner el nmero resultante en el MPC, podra seleccionar entre 128
localidades, de las posiciones O a 127. Cada una de esas palabras tendra la primera
microinstruccin de la macroinstruccin correspondiente. Aunque este mtodo desperdicia
memoria de control, acelera en gran medida la mquina y, en la prctica, casi siempre se
usa algo parecido.
No hemos dicho nada de cmo se realiza la E/S. Ni tenemos que hacerlo. Utilizando
E/S por memoria, la CPU no es capaz de diferenciar entre direcciones de memoria
verdaderas y las de los registros de los dispositivos de E/S. El microprograma realiza las
lecturas y escrituras en las cuatro palabras superiores del espacio de direcciones como si lo
hiciera con otras cualesquiera.

Perspectivas
En este punto conviene detenerse un minuto para reflexionar sobre los fundamentos
de la microprogramacin. La idea bsica es comenzar con una mquina fsica muy sencilla.
La de nuestro ejemplo consta de poco ms que un grupo de 22 registros, una pequea
memoria ROM de control, un sumador mejorado, un incrementador, un registro de
corrimiento y algunos circuitos combinacionales para multiplexar, decodificar y
secuencializar. Con este material fuimos capaces de construir un intrprete programado que
llevara a cabo las instrucciones de la mquina de nivel 2. Con la ayuda de un compilador,
podemos traducir programas escritos en lenguajes de alto nivel a instrucciones de nivel 2 e
interpretar stas una a una.
Si queremos ejecutar un programa escrito en un lenguaje de alto nivel, debemos
traducirlo primero al nivel 2 y luego interpretar las instrucciones resultantes. El nivel 2 sirve
de interfaz entre el compilador y el intrprete. Aunque, en principio, el compilador podra
generar directamente microcdigo, esto es complicado y desperdicia gran cantidad de
espacio. Cada una de nuestras macroinstrucciones ocupa una palabra de 16 bits, mientras
que el microcdigo correspondiente, excluyendo la lgica de decodificacin de instrucciones,
requiere 4 microinstrucciones de 32 bits en promedio. Si compilramos directamente a nivel
1, la memoria total necesaria se multiplicara por ocho. Adems, la memoria necesaria sera
memoria de escritura. para control, que es muchsimo ms cara debido a su gran velocidad.
No conviene usar la memoria principal para el microcdigo, ya que obtendramos una
mquina lenta.
A la luz de estos ejemplos concretos, se advertir claramente por qu las mquinas se
disean como una serie de niveles. Se hace por razones de eficiencia y simplicidad, ya que
cada nivel se aplica a un nivel de abstraccin distinto. El diseador del nivel O se ocupa de
cmo ganar unos pocos nanosegundos en la ALU utilizando algn nuevo algoritmo que
reduzca el tiempo de propagacin del acarreo. El microprogramador se interesa en como
hacer el mximo nmero de operaciones elementales con cada microinstruccin,
aprovechando en lo posible el paralelismo inherente al hardware. El diseador del juego de
macroinstrucciones desea proporcionar al escritor de compilado res y al microprogramador
una interfaz con la que se puedan sentir a gusto y que, al mismo tiempo, sea eficiente. Sin
duda cada nivel tiene objetivos, problemas y tcnicas diferentes y, en general, una forma
distinta de ver la mquina. Dividiendo el problema del diseo de la mquina en varios
subproblemas, podemos intentar dominar la complejidad intrnseca del diseo de una
computadora moderna.

114

EL DISEO DEL NIVEL DE MICROPROGRAMACIN


Como cualquier otra cosa en informtica, el diseo de la micro arquitectura est lleno
de limitaciones. En las secciones siguientes veremos algunos de los temas de diseo y los
problemas que han de sopesarse.

Microprogramacin horizontal frente a microprogramacin vertical


Probablemente la decisin ms importante sea cun codificadas deban estar las
microinstrucciones. Si furamos a construirla Mic-1 con una sola pastilla VLSI, se podran
ignorar abstracciones tales como registros, ALU, etc., y pensar slo en las compuertas. Para
que funcione la mquina, se necesitan ciertas seales, como las 16 de habilitacin de salida
de los registros al bus A o las que controlan el funcionamiento de la ALU. Si mirramos
dentro de la ALU, veramos que toda la circuiteria interna est controlada por cuatro lneas,
no dos, ya que en la esquina izquierda de la figura 3-20 encontrarnos un decodificador de 2
a 4. En resumen, se puede hacer funcionar cualquier mquina con n seales de control
aplicadas en los lugares adecuados sin decodificar nada.
Este punto de vista nos obliga a considerar un formato de microinstruccin diferente:
hacerlo de n bits, uno por seal de control. Las microinstrucciones diseadas segn este
principio se denominan horizontales y representan un extremo del espectro de
posibilidades. En el otro extremo estn las microinstrucciones con un pequeo nmero de
campos muy codificados. Se dice que son verticales. Los nombres derivan de la manera en
que un artista dibujara sus memorias de control respectivas: los diseos horizontales
tienen un nmero bastante pequeo de microinstrucciones anchas; los verticales tienen
muchas microinstrucciones estrechas.
Entre ambos extremos hay muchos diseos intermedios. Nuestras microinstrucciones,
por ejemplo, tienen algunos bits, como MAR, MBR, RD, WR y AMUX, que controlan
directamente funciones del hardware. Por otro lado, los campos A, B, C y ALU requieren
alguna lgica de decodificacin antes de que puedan aplicarse a compuertas individuales.
Una instruccin vertical extrema tendra solamente un cdigo de operacin, que sera
simplemente una generalizacin de nuestro campo ALU, y algunos operandos, como
nuestros campos
A, B y C. En una organizacin de este tipo se necesitaran cdigos de operacin para
leer y escribir en memoria, hacer micro saltos, etc., porque los campos que controlan esas
funciones en nuestra mquina ya no estaran presentes.
Para distinguir ms claramente entre microinstrucciones horizontales y verticales,
vamos a redisear nuestro ejemplo de micro arquitectura y hacer que se use
microinstrucciones verticales. Cada microinstruccin contendr ahora tres campos de 4 bits,
que suman un total de 12 bits, frente a los 32 de la versin original. El primer campo es el
cdigo de operacin, OP, que dice qu hace la microinstruccin. Los siguientes campos son
dos registros, R1 y R2. Para los saltos, se combinan formando un nico campo de 8 bits, R.
Una microinstruccin tpica sera ADD, SP, AC, que sumar el AC al SP.
En la figura 4-17 se muestra la lista completa de cdigos de operacin de las
microinstrucciones de esta nueva mquina que llamaremos Mic-2. En la lista vemos que
cada microinstruccin realiza una nica funcin: si suma, no puede desplazar ni cargar el
MAR, ni siquiera mantener activa la seal RD. Con apenas 12 bits por microinstruccin, slo
hay sitio para especificar una operacin.

115

Binario
0001
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
r= 16 *

Nemotcnico
ADD
AND
MOVE
compl.
LSHIFT
RSHIFT
GETMBR
TEST
BEGRD
BEGWR
CONRD
CONWR
NJUMP
ZJUMP
UJUMP
r1 + r2

Instruccin
Suma
Y booleano
Mueve registro
Complementa
Desplaza a la izquierda
Desplaza a la derecha
Almacena el MBR en
registro
Examina registro
Comienza lectura
Comienza escritura
Continua lectura
Continua escritura
(no usado)
Salta si N = 1
Salta si Z = 1
Salta siempre

Significado
r1:=r1 + r2
r1:=r1 Y r2
r1:=r2
r1:=inv(r2)
r1:=desizq(r2)
r1:=desder(r2)
r1:=rim
if r2 < 0 then n:=true; if r2 = 0
then z:=true
rdm:=r1; lec
rdm:=r1; rim:=r2; esc
Lec
Esc
if n then goto r
if z then goto r
goto r

Fig. 4-17. Cdigo de operacin del Mac-2


Vamos a rehacer la figura 4-10 para mostrar las nuevas microinstrucciones. La
figura 4-18 muestra el nuevo diagrama de bloques. La ruta de datos, representada a la
izquierda, es idntica a la anterior. La mayor parte de la porcin de control, a la derecha,
tambin quedar igual. En particular, an necesitamos el MIR y la memoria de control
(aunque esta vez con anchura de 12 bits, en lugar de 32). Los tamaos y funciones del M
PC, el Mmux, el incrementador, el reloj y la lgica de microsecuenciamiento son idnticos a
los del diseo horizontal. Adems, necesitaremos decodificadores de 4 a 16 para los campos
R1 y R2, anlogos a los de A, B y C de la figura 4-10.
Las tres principales diferencias entre la figura 4-10 y la figura 4-18 son los bloques
rotulados AND, NZ y "Decodificacin de OP". Se necesita AND porque el campo R1 lleva
tanto el bus A como el C. Se presenta el problema de que el bus A se carga durante el sub
ciclo 2 pero el bus C no puede cargarse en la memoria interna hasta que se hayan
estabilizado los registros de A y B, en el sub- ciclo 3.

116

La caja AND hace el Y lgico de cada una de las 16 seales decodificadas con la seal
del reloj del sub ciclo 4 y con una seal que proviene de la decodificacin de OP y que
equivale a la vieja seal ENC. El resultado es que las 16 seales que cargan datos en la
memoria interna se activan bajo las mismas condiciones que antes.
El bloque NZ es un registro de dos bits al que se le pueden hacer almacenar las
seales N y Z del ALU. Se necesita esta facilidad ya que en el nuevo diseo, el ALU trabaja
en una microinstruccin pero slo puede verificar los bits de estado en la siguiente. Como la
ALU no tiene donde almacenar N y Z y stas se obtienen de su salida en cada momento,
siendo N su bit ms significativo y Z el O lgico de todos sus bits, ambas seales de estado
se perderan si no se guardan en alguna parte.
El elemento clave de la nueva micro arquitectura es el decodificador de OP. Esta caja
toma el campo de cdigo de operacin y produce seales para controlar la caja AND, la
lgica de microsecuenciamiento, NZ, Amux, la ALU, el registro de corrimiento, el MBR, el
MAR, RD y WR. La lgica de microsecuenciamiento, la ALU y el registro de corrimiento
requieren dos seales cada uno, que son idnticas a las del diseo anterior. En total, el
decodificador de OP genera 13 seales distintas basndose en los 4 bits ms significativos
de la microinstruccin en curso.
Para cada uno de los 16 posibles cdigos de operacin de microinstruccin, el
diseador de la mquina debe determinar cul de las 13 seales que salen del decodificador
de OP est activa y cul no. En efecto, se debe generar una matriz binaria de 16 x 13 que
d el valor de cada lnea de control para cada cdigo de operacin. La figura 4-19 muestra
esta matriz para el Mic-2. Las columnas estn rotuladas con los nombres de las seales. Los
sufijos B y A significan Bajo y Alto, respectivamente, y se aplican slo a los dispositivos con
dos lneas de control: la ALU, el registro de corrimiento y la lgica de microsecuenciamiento.
Para dar un ejemplo de un cdigo de operacin de microinstruccin, consideremos

117

BEGRD, que inicia una lectura en memoria. Usa la funcin 2 de la ALU (seleccin de bus A),
con lo que ALUH = 1 y ALUL = O. Tambin carga el MAR y activa RD. Las dems seales de
control quedan inactivas. Ahora consideremos los saltos. Como hemos decidido que sean
compatibles con nuestra vieja lgica de microsecuenciamiento, el par MSLH MSLL debe ser
00 para no salto, 01 para salto si N, 10 para salto si Z y 11 para salto incondicional (la
compatibilidad ha alcanzado tales proporciones epidmicas, que incluso las mquinas
hipotticas de los libros de texto son compatibles con sus predecesoras), NJUMP genera 01,
ZJUMP genera 10 y UJUMP general 11. Todos los dems cdigos de operacin generan 00.
Ahora viene la parte interesante. Cmo construiremos un circuito de cuatro entradas
(los bits de cdigo de operacin) y trece salidas (las seales de control) que calcule la
funcin de la figura 4-19. Pues con el uso de una o varias PLA (o ROM). La figura 4-19 es
una forma algo peculiar de representar 13 tablas de verdad, una por columna, de cuatro
variables cada una, donde el nmero de fila define implcitamente el valor de las cuatro
variables. Entonces la cuestin de cmo construir el circuito se reduce a cmo implementar
una tabla de verdad. La mejor forma de hacerlo consiste en emplear una PLA de cuatro
entradas y 13 salidas. Si no la podemos conseguir, podemos usar tres 74S330, que son PLA
de 12 entradas y 6 salidas. Si denotamos los cuatro bits de cdigo de operacin con las
letras A a D, del ms significativo al menos significativo, algunas de las salidas son:
ALUL

= A

D + A

D = A

SHH

= A

MAR

= A

D + A

D = A

MSLH = A

D + A

D = A

Slo deben generarse internamente 15 trminos producto, ya que ABCD no se


necesita.

118

Habiendo rediseado el hardware, necesitamos reescribir el microprograma. Lo


muestra la figura 4-20. Se han dejado las mismas etiquetas para que sea ms fcil
comparar los dos microprogramas. Tambin se ha conservado la sintaxis. Podamos haberlo
escrito usando un lenguaje ensamblador tpico (por ejemplo, con los cdigos de operacin
de la figura 4-17), pero hemos usado de nuevo LMAN porque es mucho ms fcil de leer.
Ntese que las sentencias LMAN de la forma alu = reg usan la micr9instruccin TEST para
ajustar los bits N y Z. Asegrese el lector de que entiende la diferencia entre el
microprograma en binario, tal como se carga en la memoria de control, y la versin en
lenguaje ensamblador que se da en el texto.

119

120

Aunque ms largo, este microprograma es ms simple que el anterior puesto que cada
lnea slo realiza una operacin. En consecuencia, muchas lneas del original han tenido que
dividirse en dos, tres, e incluso cuatro lneas en ste. Otra causa que aumenta el nmero de
microinstrucciones es la ausencia de microinstrucciones de tres direcciones. Vase, por
ejemplo, las lneas 22 y 27 del primer microprograma.
El microprograma original usa 79 palabras de 32 bits, que dan un total de 2528 bits de
memoria de control. El segundo usa 160 palabras de 12 bits, que hacen un total de 1920
bits. La diferencia representa un ahorro de 2400 de memoria de control. En una
computadora integrada en una pastilla, tambin representa un ahorro de 24% en el espacio
de la pastilla (chip) ocupado por la memoria de control, lo que lo hace ms barato y fcil de
fabricar. El precio que hay que pagar por la memoria de control ms pequea es que han de
ejecutarse ms microinstrucciones por macroinstruccin. Normalmente, esto hace ms
lenta la mquina. En consecuencia, las mquinas veloces y caras tienden a ser horizontales
y las ms lentas y baratas, verticales. La existencia de microinstrucciones muy codificadas,
como las del Mic-2, plantea serios problemas conceptuales acerca de lo que es la
microprogramacin. El juego de microinstrucciones de la figura 4-17 podra pasar casi por
el juego de instrucciones del lenguaje de mquina convencional de una micro-o

121

minicomputadora muy simple. La PDP-8, por ejemplo, es una minicomputadora con


palabras de 12 bits cuyas instrucciones no son mucho ms potentes que stas.
Considerando que el "significado" de las instrucciones est determinado por el hardware (la
PLA o circuito del decodificador de OP), se podra decir que el Mic-2 es realmente una
mquina no microprogramada en la que se ejecuta un intrprete para otra mquina. Si el
microprograma de la mquina vertical se guardara en la memoria principal (como sucede en
la IBM 370/145, por ejemplo), la distincin entre una mquina microprogramada muy
vertical y una cableada (no microprogramada) perdera an ms nitidez. Vase a Dasgupta
(1979) si se desea profundizar en los aspectos de codificacin y paralelismo en el
microcdigo.

Nanoprogramacin
Los diseos vistos hasta ahora tenan dos memorias: la central (utilizada para guardar
el programa de nivel 2) y la de control (utilizada para guardar el microprograma) .Con una
tercera memoria, la nanomemoria, se pueden realizar interesantes compromisos entre la
organizacin horizontal y la vertical. La nanoprogramacin es apropiada cuando se repiten
varias veces muchas microinstrucciones. El microprograma de la figura 4-16 no tiene esa
propiedad. La microinstruccin ms frecuente es la que slo tiene lec y nicamente aparece
cinco veces.
La figura 4-21 ilustra el concepto de nanoprogramacin. La parte (a) muestra un
microprograma de n microinstrucciones de w bits cada una. Se necesitan nw bits de
memoria de control en total para guardarlo. Supongamos que un estudio detallado del
microprograma muestra que slo se usan m microinstrucciones diferentes de las 2W
posibles, siendo m<<n. Se podra utilizar una nanomemoria especial de m palabras de w
bits para guardar cada microinstruccin nica. En el microprograma original se podra
reemplazar cada instruccin por su direccin en la nanomemoria. Como la nanomemoria
slo contiene m palabras, la memoria de control necesaria tiene solamente log2 m
(redondeado al entero mayor) bits de anchura, como se muestra en la figura 4-21(b).

El microprograma se ejecuta como sigue. Primero se extrae una palabra de la


memoria de control y se usa para seleccionar una palabra de la nanomemoria, que se
extrae y se guarda en el registro de microinstruccin. Los bits de este registro se utilizan
como seales de control durante un ciclo. Al finalizar este ciclo, se extrae la siguiente
palabra de la memoria de control y el proceso se repite.
Por ejemplo, supongamos que el microprograma original tiene 4096 x 100 bits pero
slo aparecen 128 microinstrucciones distintas. Bastara una nanomemoria de 128 x 100
bits para guardar las microinstrucciones necesarias. La memoria de control tendra ahora
4096 x 7 bits, apuntando cada una de sus palabras a una nanoinstruccin. El ahorro de
memoria en este ejemplo sera:
ahorro = 4096 x 100 -4096 x 7 -128 x 100 = 368 128 bits
El precio que debe pagarse por el ahorro de memoria es una ejecucin ms lenta. La

122

mquina con la memoria de control de dos niveles funcionar con menor rapidez que la
original, debido a que el ciclo de extraccin requiere ahora dos referencias a memoria, una
a la memoria de control y otra a la nanomemoria. Estas dos extracciones no pueden
traslaparse.
La nanoprogramacin es verdaderamente eficaz cuando se usan mucho las mismas
microinstrucciones. Si se pudieran contar como iguales dos microinstrucciones casi iguales,
el microprograma contendra menos microinstrucciones distintas, pero ms frecuentemente
usadas. Se puede variar la idea bsica para permitir esto con slo utilizar como parmetro
las palabras de la nanomemoria. Por ejemplo, dos microinstrucciones pueden diferir
solamente en un campo que diga qu registro ha de sacarse a cierto bus. Poniendo el
nmero del registro en la memoria de control, en lugar de ponerlo en la nanomemoria (es
decir, omitiendo el campo del registro de las nanoinstrucciones), las dos microinstrucciones
podran apuntar a la misma nanopalabra. Cuando sta se extraiga y se ponga en el registro
de microinstruccin, el campo de registro se tomar de la micromemoria y no de la
nanomemoria.
Naturalmente, con este mecanismo aumenta la anchura de la memoria de control, que
puede o no compensar la ganancia obtenida con una nanomemoria ms pequea.

Mejora del rendimiento


Aunque el objetivo de la nanoprogramacin es reducir el tamao de la memoria de
control, incluso al precio de una ejecucin ms lenta, tambin se ha invertido gran cantidad
de tiempo y esfuerzo en el objetivo opuesto: intentar acelerar la ejecucin, incluso al precio
de una mayor memoria de control. Estos dos criterios de diseo aparentemente
incompatibles tienen que ver con dos estrategias de mercadotecnia: la de mquinas baratas
y la de mquinas rpidas. En esta seccin examinaremos algunas de las maneras en que se
puede modificar nuestra sencilla micro arquitectura para que las mquinas funcionen ms
rpido.
Hasta ahora hemos supuesto que los cuatro sub ciclos tenan la misma duracin.
Aunque esto es sencillo, pocas veces produce el mejor rendimiento, ya que invariablemente
uno de los cuatro necesita mucho ms tiempo que los otros tres. Si los cuatro duraran lo
mismo que el peor de los casos, la velocidad de la mquina disminuira notablemente. La
forma de corregir esto es permitir que la duracin de cada sub ciclo sea independiente de la
de los dems. La duracin de cada sub ciclo debe ajustarse a la necesaria para realizar su
funcin.
Aunque esto constituye un paso hacia adelante en la direccin correcta, es an
demasiado conservador, ya que la duracin de cada sub ciclo est todava determinada por
el peor de los casos en ese sub ciclo. Considrese, por ejemplo, el sub ciclo 3 de nuestros
ejemplos. Si la funcin de la ALU es la suma, probablemente se necesite ms tiempo
(debido a los retrasos en la propagacin del acarreo) que si la operacin fuera simplemente
seleccionar A. Si la duracin del sub ciclo 3 se determinara en el momento del diseo,
debera ser la de la suma y no la de seleccionar A. Otra estrategia consistira en que cada
operacin que va a realizarse determine la duracin del sub ciclo, de modo que sea tan
corta como sea posible.
Una vez tomada la decisin de hacer que la duracin de cada sub ciclo dependa de la
operacin, debemos encontrar una forma de llevar a la prctica esta estrategia. Acelerar o
des acelerar el reloj es una tcnica difcil, por eso lo que se hace es conseguir un reloj
maestro con un periodo mucho ms corto que la duracin del sub ciclo. As. cada sub ciclo
dura un determinado nmero de impulsos. Por ejemplo. si ALU tardara entre 75 y 150 nseg
en realizar una operacin. se podra usar un reloj maestro con un periodo de 25 nseg.
durando el sub ciclo correspondiente entre tres y seis periodos.
Nos queda averiguar cmo sabe la mquina cunto debe durar un sub ciclo. Hay dos
posibles soluciones. Una de ellas es que la microinstruccin tenga campos que digan
explcitamente los tiempos necesarios. La otra es derivar estos tiempos basndose en los
campos de operacin (utilizando una PLA). de la misma forma que se generan las dems
seales de control en una mquina vertical. La primera solucin cuesta bits de la memoria
de control y la segunda cuesta lgica de decodificacin y tiempo.
Otra forma de obtener mayor potencia de la mquina. consiste en incrementar la

123

flexibilidad de los microsaltos condicionales. Como ejemplo. considrese una


macroinstruccin OMITE SI MENOR. que compare el registro AC con una palabra de
memoria y salte a la siguiente macroinstruccin si AC es menor . Para realizar la
instruccin. se requiere restar la palabra de memoria de AC (o de una copia de ste). la que
puede dar como resultado un desbordamiento. como se ilustra en la figura 4-22.
Debido al desbordamiento potencial, no es posible decir. con slo ver el bit de signo
del resultado. cual de los operandos era menor. En el cuarto ejemplo de la figura 4-22, AC
es menor que la palabra de memoria pero el resultado de la resta es positiva. La condicin
correcta a probar es N O-EXCLUSIVO V. en donde V indica la presencia o ausencia de
desbordamiento. (El hardware asigna a V el valor de 1 siempre que el acarreo al bit de
signo difiera del acarreo del bit de signo.)
AC
Men

000100
000050
000030
N=0
V=0

000100
170000
010100
N=0
V=0

077777
177775
100002
N=1
V=1

100001
000010
077771
N=0
V=1

000010
100001
100007
N=1
V=1

Fig. 4-22. algunos ejemplos de restas de nmeros de 16 bits en complemento a 2 (octal). Tambin se muestran
los bits N y D de cada resultado.
Afortunadamente, la mayora de .las ALU no slo generan N y Z sino tambin D y A
(acarreo). Sin embargo, si slo hubiera cuatro saltos condicionales para cada uno de los bits
NZDA, la macroinstruccin OMITE SI MENOR requerira muchas microinstrucciones. Para
mayor flexibilidad. muchas mquinas no permiten examinar individualmente los bits de
estado de la ALU. En cambio. un nico bit de las microinstrucciones provoca el O lgico de
los bits NZDA con los cuatro bits menos significativos del campo ADDR y se salte al
resultado. La figura 4-23 da algunos ejemplos. Si los 4 bits menos significativos fueran O,
esto se convertira en un salto condicional con 16 alternativas. Si todos fueran 1, se
convertira en salto incondicional a una direccin especfica terminada en 1111.

Campo
DIR

NZDA

10000000
10001000
10001011
10001011
10001011
10001111
10001111
10000000

1001
1001
1001
1000
0000
0000
1100
1100

Direccin
hacia
donde
salta
10001001
10001001
10001011
10001011
10001011
10001111
10001111
10001100

Fig. 4-23. Algunos ejemplos de


saltos a mltiples destinos,
basndose en los bits NZDA
Con esta ayuda la instruccin OMITE SI MENOR sera mucho ms fcil de interpretar.
Elegiramos un campo ADDR que terminara en 0101, como 10000101 (binario), y
realizaramos el salto. Las microinstrucciones situadas en 10001101 y 10000111 traern el
caso AC < memoria y las situadas en 10000101 y 10001111 tratarn el caso contrario. No
se necesita ninguna decodificacin adicional. Tambin podramos haber usado una direccin
de base terminada en 0000, en lugar de la que termina en 0101, pero estas direcciones

124

son muy valiosas, ya que son las nicas disponibles para saltos con 16 posibilidades. Por
tanto, no debe elegirse a la ligera.
Es claro que con este tipo de control del secuenciamiento de las microinstrucciones, la
tarea de situar las microinstrucciones en la memoria de control puede causar verdaderos
dolores de cabeza. La primera instruccin ejecutada despus de un salto de 16 alternativas
debe tener un salto incondicional, ya que la palabra siguiente (excepto si es la ltima) se
utiliza como uno de los posibles destinos del salto. A dnde debera saltar cada una de
estas microinstrucciones? Ciertamente no a una direccin de la forma xxxx0000, ya que son
demasiado valiosas, pero tambin podran necesitarse tarde o temprano las dems, excepto
las de la forma xxxx1111. La decisin debe tomarse con cuidado, evitando agotar algn tipo
de direccin. Por ejemplo, una vez que se han agotado las direcciones pares, ya no es
posible verificar el bit de acarreo C, as que la seleccin de direcciones debe hacerse con
mucho cuidado.
Una forma ms para acelerar la mquina consiste en conformar el hardware con varias
unidades funcionales y despus unirlas para que trabajen en lnea o en forma escalonada
(pipeline).* En la figura 2-5 se observ cmo funciona una computadora con cinco unidades
escalonadas. En la figura 4-24 se muestra que si la instruccin 1 se extrae en el ciclo 1, se
ejecutar en el ciclo 5. En forma parecida, si la instruccin 4 se extrae en el ciclo 8, se
decodifica en el 9, etc., se ejecutar en el ciclo 12. Bajo condiciones ptimas, en cada ciclo
de ah en adelante se ejecuta una instruccin, dando un promedio de ejecucin de una
instruccin por ciclo, en lugar de una cada cinco ciclos.

Extraccin de
instrucciones
Decodificacin de
instrucciones
Clculo de direcciones
Extraccin de operando
Ejecucin

1
1

Ciclo
2 3 4
2 B
1

2
1

B
2 B
1 2 B

8
4

9
5

10 11
6 7 8

5
4

6
5
4

7
6
5

Fig. 4-24. Unidad de procesamiento en lnea de 5 etapas. Las instrucciones estn


etiquetadas con nmeros. La instruccin marcada como B es un salto condicional
Desafortunadamente, hay estudios que han demostrado que alrededor del 30% de las
instrucciones son saltos y stos hacen estragos en la lnea de procesamiento. Los saltos
pueden clasificarse en tres categoras: incondicionales, condicionales e iterativos. Un salto
incondicional indica a la computadora que detenga la extraccin de instrucciones en forma
consecutiva y se dirija a una direccin especfica. Un salto condicional verifica una condicin
y salta si sta se cumple. Un ejemplo tpico es una instruccin que checa un registro y salta
si ste contiene un valor de cero. En caso contrario, no se lleva a cabo el salto y el control
contina en la secuencia actual.
Por lo general las instrucciones iterativas decrementan un contador de iteraciones y
saltan al inicio si el contador no es cero (v .g. todava hay iteraciones por hacer). Estas
instrucciones son un caso especial importante de los saltos condicionales, ya que se sabe de
antemano, que casi siempre habr ese salto.
Considrese lo que sucede en la lnea de procesamiento (pipeline) de la figura 4-24
cuando se encuentra una instruccin (sealada como B) de salto condicional. La siguiente
instruccin a ejecutar debera ser la siguiente a la del salto, pero tambin podra ser la
direccin a la cual salt, llamada blanco del salto. En virtud de que el extractor de
instrucciones no sabe cual sigue sino hasta que se ejecuta el salto, se demora y no puede
continuar hasta la ejecucin de ste. En consecuencia la lnea se vaca. Slo despus de que
termina el ciclo 7, se sabe qu instruccin sigue.

125

A la prdida de cuatro ciclos causada de hecho por el salto se le denomina


penalizacin por salto. Resulta evidente que con un salto en una de cada tres instrucciones,
la disminucin en el desempeo es sustancial.
Se han realizado una gran cantidad de investigaciones alrededor del problema de
recuperar algo de este desempeo (DeRosa y Levy, 1987; McFarljng y Hennessy, 1986;Hwu
y col. 1989 y, Lilja, 1988). Lo ms sencillo consist en esperar que el salto no se realice y
continuar procesando como si el salto fuera una simple instruccin aritmtica. Si resulta que
en efecto, el salto no se realiza, no se ha "perdido nada. Si por el contrario el salto se
efecta, se deben eliminar las instrucciones que estn actualmente en la lnea y empezar de
nuevo.
Esta opcin presenta sus propios problemas. En algunas mquinas, se
puede
modificar un registro como el resultado intermedio de un clculo de direcciones. Si una
instruccin eliminada modific a uno o ms registros, estos deben ser restaurados, lo que
significa que debe haber un mecanismo para grabar los valores originales. Resulta
instructivo hacer un modelo de la prdida en el desempeo.
Sea Pj la probabilidad de que una instruccin sea un salto.
Sea P, la probabilidad de que el salto se realice.
Sea b la penalizacin por salto.
El tiempo promedio de ejecucin (en ciclos) se puede calcular como la suma
ponderada de los dos casos: instrucciones regulares e instrucciones de salto.
Tiempo promedio de ejecucin = (1- Pj)(l) + Pj[Pt1 + b) + (1- P,)(1)]
Un poco de lgebra revela que el tiempo promedio por instruccin es 1 + bPjP,. Luego
la eficiencia de ejecucin es 1/(1 + bPjP,). Asignando los valores (tpicos estimados) de b =
4, Pj = 0.3 y P, = 0.65, la mquina corre a menos del 60% de su capacidad potencial.
Qu puede hacerse para mejorar el desempeo? Para empezar, si se pudiera predecir
la direccin del salto, se podra extraer la instruccin apropiada " (siguiente) y eliminar la
penalizacin. En la frmula para la eficiencia se puede " entonces reemplazar P, por la
probabilidad P w de que la suposicin sea falsa.
Existen dos clases de predicciones: estticas (al tiempo de compilacin) y dinmicas
(al tiempo de ejecucin). Con prediccin esttica, el compilador hace una suposicin para
cada una de las instrucciones de salto que genera. Suponer por ejemplo, en las
instrucciones iterativas que el salto regresar al inicio de la iteracin, es correcta la mayora
de las veces. Cuando se trata de una condicin improbable, tal como una llamada al sistema
que genera un cdigo de error, es muy posible que el salto no se lleve a cabo. En muchos
casos se utilizan diferentes instrucciones para estos casos y el solo hecho de observar el
cdigo de operacin proporciona una buena sugerencia.
Otro esquema ms elaborado para los diseadores de mquinas consiste en
proporcionar dos cdigos de operacin para cada tipo de salto y hacer que el compilador use
el primero si cree que el salto se llevar a cabo y el segundo en caso contrario. En forma
alternativa, para programas de uso intensivo, se pueden correr primero en un simulador,
registrando, el comportamiento de cada salto; luego, el programa binario puede "parcharse"
con el cdigo de operacin apropiado (probablemente se realice, probablemente no se
realice).
En el mtodo de prediccin dinmica, el microprograma construye, durante la
ejecucin, una tabla con las direcciones que contienen saltos y guarda un registro del
comportamiento de cada uno. Este mtodo tiende a hacer ms lenta la mquina al llevar el
registro, de modo que requiere de alguna ayuda del hardware. Algunas mediciones han
mostrado que de esta manera no es difcil lograr un 90% de precisin.
La prediccin de los saltos no es el nico punto de ataque. Otra opcin es determinar
por anticipado en la lnea, hacia que direccin ser el salto. Algunas pruebas, como el salto
si es igual son mucho ms fciles de hacer que en salto si menor que. Las primeras se
pueden hacer con un comparador, mientras que las segundas requieren de un ciclo
completo de trayectoria de datos para hacer una resta. Con este enfoque, siempre que el
microprograma encuentre un salto, hace una verificacin rpida en una etapa temprana de
la lnea para ver si puede resolver el salto de inmediato, en cuyo caso sabe en donde
continuar con la extraccin de la siguiente instruccin.

126

Los compiladores pueden ser de gran ayuda, por ejemplo, cuando el programador
escribe una iteracin variando i desde 1 hasta 10, el compilador puede verificar i para ver si
es igual a lo, en vez de ver si es menor de II, de manera que el microprograma puede librar
la cuestin con una comparacin en lugar de una resta. Para ocuparse de aquellos saltos
que no se pueden resolver en las primeras etapas, el compilador puede tratar de encontrar
algo til para que la computadora trabaje, mientras espera que se ejecute el salto.
Considrese la declaracin aritmtica seguida de una comparacin, de la figura 4-25(a).
Un compilador con una optimizacin hbil pudiera producir un cdigo ms parecido al de la
figura 4-25(b), el cual no est en lenguaje Pascal legal, pero muestra el orden de eventos.
Primero genera el cdigo para hacer la comparacin, luego hace la operacin aritmtica.
Despus de que el salto ha ingresado en la lnea de procesamiento, le siguen varias
instrucciones ordinarias, las cuales sin lugar a duda deben ejecutarse, as que no hay
necesidad de hacer ninguna prediccin ni eliminacin. Para usar esta tcnica con
efectividad, los microprogramadores y los diseadores de compilado res tuvieron que
trabajar en estrecha coordinacin durante el diseo.

a := b + c;
if b < c
then
declaracin
(a)

if b < c
a := b + c;
then
declaracin
(b)

Fig. 4-25. (a) Un fragmento en lenguaje


Pascal. (b) Como pudiera ser el tratamiento
por parte del compilador
Si todo lo dems falla, siempre existe la posibilidad de seguir ambas trayectorias en
paralelo. Para hacerlo, se requieren dos lneas de procesamiento en el hardware y no evita
el problema de eliminacin. No obstante, este mtodo se utiliza en ocasiones en las
computadoras de orden superior, en las que el aspecto importante es el desempeo y no el
precio. Desde luego, si cada trayectoria se topa con otro salto antes de resolver el primero,
el asunto se vuelve an ms complicado. Probablemente no sea la mejor idea tener
"flojeando" algunas docenas de lneas de procesamiento, para enfrentar el peor de los
casos.
Despus de toda esta teora respecto a lo que podra hacerse, regrese por un
momento a la mquina de ejemplo. Esta, no tiene distintas unidades de hardware para
extraccin, decodificacin, etc., de modo que no es posible formar estas lneas de
procesamiento, pero con cambios menores al microprograma, se puede lograr un nmero
limitado de traslapes entre las microinstrucciones de extraccin y ejecucin, la que tambin
es una forma de realizar las lneas.
En la figura 4-10, por ejemplo, si la siguiente microinstruccin pudiera extraerse de
alguna manera durante el sub ciclo 4, ya no se necesitara el sub ciclo 1 y el reloj slo
generara impulsos para los sub ciclos 234234234. ..El principal problema surge con las
rnicroinstrucciones de salto condicional. Si la mquina esperara a que las lneas de estado
de la ALU estn disponibles antes de iniciar la extraccin de la microinstruccin siguiente,
seria demasiado tarde. El ciclo habra prcticamente terminado y se podra conseguir poco
traslape. En algunas mquinas el problema se resuelve usando las lneas de estado de la
ALU del ciclo anterior que, por supuesto, debern guardarse en biestables para evitar que
se desvanezcan. Estos valores estn disponibles al comienzo de cada microinstruccin y por
tanto puede empezar la siguiente extraccin inmediatamente, mucho antes de que se
termine la ejecucin de la microinstruccin en curso. No es necesario decir que esto
complica en gran medida la vida del microprogramador.
Desde el punto de vista tcnico, es posible escribir microprogramas para una mquina
de este estilo en una forma razonable. Por ejemplo, para examinar alguna palabra de la
memoria de anotaciones y saltar si es negativa, el microprograma puede pasar la palabra
por la ALU en una microinstruccin que no contenga un salto. La siguiente microinstruccin
127

ser una no-operacin con un salto condicional. Es decir, no har nada excepto examinar
los bits de estado de la ALU, que se haban memorizado, y saltar. El precio a pagar por
programar en forma razonable es doblar la duracin del salto, lo que no es muy deseable.
La nica solucin es conseguirse un frasco lleno de aspirinas y tratar de sacar el
mximo provecho de cada situacin. Por ejemplo, el microprogramador podra hacer una
hiptesis de dnde suele saltar la microinstruccin y empezar a hacer el trabajo que
probablemente se necesite. Por desgracia, si el salto fuera a otra alternativa, sera
necesario eliminar parte de lo hecho.
He aqu un ejemplo sencillo: rescribimos las lneas 11 a 18 de la figura 4-16 para una
mquina con extraccin y ejecucin traslapadas de microinstrucciones. Los resultados se
muestran en la figura 4-26(a). En este ejemplo tenemos suerte, ya que despus de
ejecutar la lnea 11 sabemos que seguir el cdigo de ADDD o de SUBD, que empiezan por
la misma microinstruccin. Por tanto, basta poner la microinstruccin comn en la lnea 12
para ocupar la mquina mientras se realiza el salto.
Un ejemplo menos elegante es el de la figura 4-26(b). En la lnea 52 sabemos que
vamos a entrar en la micro rutina de PSHI o en la de POPI, pero, lamentablemente no
empiezan por la misma microinstruccin. Supongamos, sin embargo, que un anlisis
estadstico mostr que los programas del Mac-l usan PSHI muchas ms veces que POPI.
Entonces podramos proceder como se indica en la figura 4-24(b). Para PSHI todo va bien,
pero para POPI, cuando se llega a la lnea 56, se ha iniciado una lectura en memoria de una
palabra incorrecta. Segn los detalles especficos del hardware, puede ser posible o no "c"
abortar una lectura de memoria a medio realizar sin perturbar el funcionamiento. Si no
podemos abortarla, simplemente la terminamos y luego iniciamos la lectura correcta. En
este ejemplo POPI requiere 15 microinstrucciones en lugar de las 13 de la figura 4-16. Sin
embargo, si el uso del traslape reduce el tiempo bsico de microinstruccin en 15%, incluso
POPI ser ms rpida que antes.

11: alu:=tir;
12:mar:=ir;rd; if n then
goto 16
13:rd;
14ac:=mbr + ac; goto 0;
16:ac:=ac + 1; rd;
17:a:=inv(mbr);
18:ac:=ac + a; goto 0
(a)

52:alu:=tir;
53:mar:=ac;rd;if n then
goto 56
54:sp:=sp + (-1); rd
55:mar:=sp; wr; goto 10
56:rd;
57:mar:=sp; sp:=sp + 1;
rd;
58:rd;
59:mar:=ac; wr; goto 10;
(b)

Fig. 4-26. (a) Un fragmento en lenguaje Pascal. (b) Como pudiera ser el
tratamiento por parte del compilador
La situacin se volvera en extremo compleja si se utilizaran saltos condicionales de
alternativas mltiples, formados haciendo el O lgico de NZDA con los bits menos
significativos de ADDR en vez de comprobaciones sobre los bits individuales. Adems, en
muchas mquinas, el traslape de la extraccin y la ejecucin de las microinstrucciones se
hace de tal modo que, al principio de la ejecucin de la microinstruccin la eleccin de la
microinstruccin n + 1 ha de hacerse utilizando los bits de estado de la ALU de la
microinstruccin n - 1. No vamos a continuar profundizando en el tema, pero con esto basta
para entender completamente la definicin de microprogramacin dada por Rosin.

128

Memoria cach
Por tradicin, las CPU han sido siempre ms rpidas que las memorias y aunque se
han desarrollado las segundas, los CPU tambin lo han hecho, manteniendo as el
desequilibrio. Lo que esto significa en la prctica es que despus de que la CPU enva una
solicitud a la memoria, debe permanecer ociosa durante un tiempo sustancial, aguardando a
que la memoria responda. Como se ha visto, es comn que la CPU establezca una lectura
de memoria durante un ciclo del bus y no obtenga los datos hasta dos o tres ciclos ms
tarde, aun cuando no haya estados de espera.
En realidad, el problema no es de tecnologa sino econmico. Los ingenieros saben
como construir memorias tan rpidas como las CPU, pero son tan caras que equipar a una
computadora con un megabyte o ms es impensable (excepto quiz para las
supercomputadoras, en las que prcticamente no hay lmite y el precio no representa
objecin). De ah que la eleccin se reduce a tener una pequea cantidad de memoria o una
gran cantidad de memoria lenta. Lo preferible seria una gran cantidad de memoria a un
bajo precio.
De sumo inters son las tcnicas conocidas para combinar estos tipos de memoria a
fin de obtener, a bajo precio, la velocidad de la memoria rpida y la capacidad de la
memoria lenta. A la memoria pequea y rpida se le llama cach (del francs cacher que
significa esconder) y est bajo el control del microprograma. En seguida, se describir cmo
se utilizan y funcionan estas memorias. Se puede encontrar ms informacin en (Agarwall
op. cit., 1989; Farrens y Pleszkun, 1989; Kabakibo op. cit., 198.7;Kessler op. cLt..it'1989;
Pohm y Agarwall, 1983; Przybylski op. cit., 1989; Smith, 1982; y Wang op. cit., 1989).
Desde hace aos es sabido que los programadores no accesan las memorias en forma
completamente aleatoria. Si una referencia a memoria dada, es ala direccin A. es comn
que la siguiente referencia se realice en los alrededores de
A. Un ejemplo sencillo es un programa en s, con excepcin de los saltos y las
llamadas a procedimientos, las instrucciones se extraen de localidades de memoria
consecutivas. Es ms, la mayora del tiempo de ejecucin del programa se emplea en
iteraciones, en las que un nmero limitado de instrucciones se ejecutan de manera repetida.
En forma parecida, es comn que en un programa manejador de matrices se efecten
muchas referencias a la misma matriz, antes de cambiar a otra actividad.
Se le llama principio de localidad a la observacin de que las referencias a memoria
realizadas en un intervalo de tiempo corto, tienden a usar slo una fraccin de la memoria
total, y representa la base para todos los sistemas de memoria cach. La idea general es
que cuando un palabra es referenciada, se le trae de la memoria grande y lenta hacia la
cach, de modo que la siguiente vez que se utilice, se pueda accesar muy rpido. En la
figura 4-27 se ilustra una distribucin comn de la CPU, la memoria principal y la cach. Si
una palabra se lee o escribe k veces en un intervalo corto, la computadora necesitar de 1
referencia a la memoria lenta y k -1 referencias a la memoria rpida. Entre ms grande es
k, mejor es el desempeo general.

Podemos formalizar este clculo llamado c al tiempo de acceso a la memoria cach, m

129

al tiempo de acceso a la memoria principal y h a la proporcin de aciertos, que es la


fraccin de todas las referencias que pueden ser satisfechas fuera de la cach. En el
pequeo ejemplo del prrafo previo, h = (k -1)/ k, algunos autores definen tambin la
proporcin de fallas como 1- h.
Con estas definiciones podemos calcular el tiempo medio de acceso de la siguiente
manera:
tiempo medio de acceso = c + (1- h)m
Cuando h tiende a 1, todas las referencias pueden ser satisfechas en la memoria
cach y el tiempo de acceso se aproxima a c. Por otra parte, cuando h tiende a 0, se
necesita una referencia a memoria cada vez y el tiempo de acceso se aproxima a c + m,
primero un tiempo c para verificar (sin xito) la cach y luego un tiempo m para efectuar la
referencia a memoria. En algunos sistemas, la segunda referencia puede iniciarse en
paralelo con la bsqueda en la cach, de modo que si no encuentra la palabra en sta, el
ciclo de memoria ya ha comenzado. Sin embargo, esta estrategia es ms complicada pues,
requiere que la memoria pueda detenerse sobre sus pistas, cuando la palabra fue localizada
en la cach. El algoritmo bsico de bsqueda en la cach y el iniciar (o detener) la
referencia a la memoria principal dependiendo del resultado de dicha bsqueda, son
aspectos que maneja el microprograma.
Se utilizan dos formas diferentes de organizacin de la cach, junto con una tercera
que es un hbrido de las dos primeras. Para los tres tipos, se asume que la memoria sea de
2'.. bytes, dividida (de manera conceptual) en bloques consecutivos de b bytes, lo que da
un total de 2m / b bloques. Cada bloque tiene una direccin que es un mltiplo de b. El
tamao b del bloque es por lo general una potencia de dos.
El primer tipo es la memoria cach asociativa, cuyo ejemplo se muestra en la figura
4-28. Consiste en cierto nmero de renglones o lneas, cada uno de los cuales contiene un
bloque y su nmero correspondiente, junto con un bit de Validez que indica si el rengln
est actualmente en uso o no. El ejemplo de la figura 4-28 ilustra una cach con 1024
renglones y una memoria con 224 bytes, dividido en 222 bloques de 4 bytes. En este tipo
de cach el orden de los accesos es aleatorio.

Al inicializar la computadora, todos los bits de Validez toman el valor O, para indicar
que ninguna entrada a la cach es vlida. Suponga que la primera instruccin hace
referencia a la palabra de 32 bits que se encuentra en la direccin 0. El microprograma
checa todos los renglones de la cach buscando uno que sea vlido y contenga el bloque
nmero 0. Al no encontrarlo, enviar una solicitud al bus para extraer de la memoria la
palabra 0. Si esta palabra se necesita de nuevo, la prxima vez ser tomada de la cach,
eliminando la necesidad de una operacin del bus.
Al correr el tiempo, ms y ms renglones de la cach se marcarn como vlidos. Si el
programa completo y sus datos utilizan de 1024 palabras, todo el programa y sus datos
aparecern en la cach y correr a mayor velocidad, sin hacer ninguna referencia a la

130

memoria a travs del bus. Si se necesita ms de 1024 palabras, en algn momento la cach
estar llena y un rengln previo deber descartarse para dar lugar a uno nuevo. En la
prctica, la decisin de cul eliminar debe hacerse muy rpido (en nanosegundos). La VAX y
muchas otras mquinas seleccionan un rengln en forma aleatoria. En el captulo 6 se
abordan otros algoritmos posibles bajo el ttulo de memoria virtual, en donde ocurre el
mismo problema.
El aspecto que distingue a la memoria cach asociativa de los otros tipos, consiste en
que cada rengln contiene el nmero de bloque y su entrada. Cuando se presenta una
direccin de memoria, el microprograma debe calcular el nmero del bloque relevante
(fcil) y luego buscar ese nmero de bloque en la cach (difcil). A fin de evitar una
bsqueda lineal, la cach asociativa dispone de un hardware especial que puede comparar
cada entrada con el nmero de bloque dado en forma simultnea, en lugar de hacerlo en un
lazo de microprograma. Este tipo de hardware hace que dicha memoria sea cara.
Para reducir el costo, se invent la memoria cach de mapeo directo. Este tipo evita la
bsqueda poniendo cada bloque en un rengln cuyo nmero se puede calcular fcilmente a
partir del nmero del bloque. Por ejemplo, el nmero de rengln puede ser el nmero de
bloque mdulo el nmero de renglones. Con bloques de 4 bytes (una palabra) y 1024
renglones, el nmero de rengln que corresponde a la direccin A es igual a (A/4) mdulo
1024. En el ejemplo de la figura 4-29 se puede observar que las palabras en las
direcciones 0,4096, 8192, etc., caen en el rengln 0; las palabras en las direcciones 4,4100,
8196, etc., se mapean al rengln 1 y as sucesivamente.
Mientras que las memorias cach de mapeo directo eliminan el problema de buscar,
crean por otro lado un nuevo problema; cmo indicar cul de las muchas palabras que
corresponden al rengln lo est ocupando. En "efecto, se han creado 1024 clases de
equivalencia basada en los nmeros de bloque mdulo el tamao de la cach. En el
ejemplo, el rengln 0 puede contener cualquiera de las palabras 0, 4096, 8192, etc. , la
forma de sealar cul est en un momento dado en dicho rengln es poner parte de la
direccin en el campo etiqueta de la cach.
Este campo contiene aquella parte de la direccin que no puede calcularse a partir del
nmero de rengln.
Para hacer este punto ms claro, considrese una instruccin en la direccin 8192 que
mueve la palabra ubicada en la direccin 4100 a la 12296. El nmero de bloque
correspondiente a la direccin 8192 se calcula dividindola entre 4 (tamao del bloque del
ejemplo), para obtener 2084. En seguida, el nmero de rengln se calcula como 2048
mdulo 1024, lo que es lo mismo que usar 10 bits de orden inferior de 2048. El nmero de
rengln es 0. Los 12 bits de orden superior contienen un 2, de modo que esa es la etiqueta.
La figura 4-29(a) muestra a la cach despus de haber procesado las tres direcciones.
En la figura 4-29(b) se puede ver la direccin en forma separada. Los dos bits de
orden inferior son siempre 0 (ya que la cach trabaja con bloques enteros y stos son
mltiplos del tamao del bloque, 4 bytes en el ejemplo). En seguida est el nmero del
rengln (10 bits) y por ltimo la etiqueta (12 bits). Es muy fcil construir hardware que
extraiga directamente el nmero de rengln y la etiqueta, de cualquier direccin de
memoria.

131

El hecho de que muchos bloques se mapeen en un mismo rengln puede causar


problemas. Supngase que la instruccin moviera la direccin 4100 a la 12292 en lugar de
ala 12296; ambas direcciones se mapearan al rengln 1. Dependiendo de los detalles del
microprograma, la direccin que se calculara despus permanecera en la cach, mientras
que la otra sera purgada. Esto no es un desastre en s pero s se degrada el desempeo de
la cach si muchas palabras de las utilizadas resulta que estn en el mismo rengln. La
meta, despus de todo, es mejorar el rendimiento.
La salida de esta dificultad consiste en expandir la cach de mapeo directo con ms de
un registro por rengln. La PDP-11/70, por ejemplo, tena dos registros por rengln. A la
memoria cach con varios registros por rengln se le denomina memoria cach asociativa
agrupada y se ilustra en la figura 4-30.

Tanto la cach asociativa como la de mapeo directo son de hecho, casos especiales de
la asociativa agrupada. Si se reduce el nmero de renglones a 1, todos los registros de la
cach estarn en el mismo rengln y habr que distinguirlos slo por sus etiquetas ya que
todos caen en la misma direccin. Este caso es slo una cach asociativa. Si n = 1 se
regresa a una memoria cach de mapeo directo con un registro por rengln.
Las memorias cach asociativas y de mapeo directo tienen diferentes puntos fuertes y
dbiles, la de mapeo directo es ms sencilla, fcil de construir y tiene un tiempo de acceso
ms rpido, ya que puede encontrar el rengln adecuado indexando en la cach con una
porcin de la direccin como ndice. Por otra parte, la cach asociativa tiene una mayor
proporcin de aciertos para un nmero dado de renglones, pues nunca se presentan
conflictos. No se puede dar el caso de que k palabras importantes no puedan ubicarse
simultneamente en la cach porque tuvieron la mala suerte de caer en el mismo rengln.

132

Cuando se disea cualquier computadora real, se realiza siempre una intensa simulacin de
la cach para observar el desempeo que se est adquiriendo ya que precio.
Adems de determinar el nmero de renglones, los diseadores deben tambin
seleccionar el tamao del bloque. En los ejemplos, se ha utilizado (por simplicidad) una
palabra de 32 bits, pero tambin es posible y se usan con frecuencia 2, 4, 8, o ms
palabras. Una ventaja de usar un tamao grande de bloques es que hay menor gasto
general para extraer un bloque de ocho palabras que para ocho bloques de una palabra, en
especial si el bus permite transferencias en bloque. La desventaja es que puede no
necesitarse todas las palabras, as que algunas extracciones pueden desperdiciarse.
Otra parte importante en el diseo de la cach es cmo manejar las escrituras. Por lo
general se utilizan dos estrategias. En la primera denominada con escritura a memoria,
cuando una palabra se escribe en la cach de inmediato se escribe en la memoria. Este
enfoque asegura que los registros en la cach son siempre los mismos que los
correspondientes a la memoria.
La otra poltica de escritura llamada retrocopiado, no actualiza la memoria siempre
que cambia la cach, sino que slo lo hace cuando un registro es eliminado de la cach para
dar lugar a que uno nuevo ocupe ese rengln. Cuando se utiliza el retrocopiado, es
necesario un bit en cada registro de la memoria cach que indique si ste ha cambiado
desde que se carg en sta. Al igual que en todos los dems aspectos de diseo de la
cach, existen aqu ciertas consideraciones. Es obvio que con escritura a memoria cause
ms trfico del bus que el retrocopiado. Por otra parte, si una CPU inicia una transferencia
de entrada / salida de memoria a disco y la memoria est incorrecta (porque palabras que
se modificaron recientemente an no han sido copiadas a memoria desde la cach), se
escribirn datos incorrectos en el disco. Este problema se puede evitar, pero agrega
complejidad al sistema.
Si el porcentaje de lecturas es ms alto que el de escrituras, puede resultar ms
simple usar la cach con escritura a memoria y aceptar el trfico del bus. Sin embargo, si
existen muchas escrituras, pudiera ser mejor utilizar el retrocopiado y hacer que el
microprograma explcitamente limpie la cach por completo antes de iniciar una operacin
de E/S.
Otro aspecto de diseo relacionado con las escrituras, es qu hacer si una escritura
provoca una prdida en la cach. Una estrategia consiste en extraer la palabra en la cach y
luego actualizarla, si se est usando cach con escritura a memoria. Una estrategia
diferente es escribir directamente a memoria, pero no extraer la palabra a la cach excepto
en lecturas. A este aspecto se le conoce con el nombre de poltica de asignacin de
escrituras. Ambos mtodos descritos se encuentran en uso.
Al mejorar la tecnologa de los circuitos integrados, ha sido posible poner caches muy
rpidas, directamente en la pastilla de la CPU. Debido a la falta de rea en la pastilla, estas
memorias son pequeas, as que sera deseable tener dos niveles de cach, una en la
pastilla de la CPU y otra en la tarjeta. Si no se puede encontrar una palabra en la cach
integrada en la pastilla, se hace una solicitud ala cach en el nivel de tarjeta. Si falla, se
utiliza la memoria principal.
Considerando todo lo anterior, el uso de la memoria cach es una tcnica importante
para incrementar el rendimiento de un sistema. Casi todas las computadoras de mediana y
gran escala utilizan alguna forma de esta tcnica. Se puede encontrar informacin adicional
sobre el tema en (Hill, 1988; Przybylski op. cit., 1988; Short y Levy, 1988; y Smith, 1986,
1987).

133

CONCLUSIN

134

BOLILLA II (Parte 3): EL


NIVEL DE MAQUINA
CONVENCIONAL

135

INDICE
INDICE GENERAL............................................................................................1
BOLILLA I: LA COMPUTADORA..............................................................................................4
INDICE.......................................................................................................................................5
INTRODUCCIN...................................................................................................................12
LA COMPUTADORA............................................................................................................13
CONCEPTO:.........................................................................................................................13
FUNCIONES Y ACCIONES:...............................................................................................13
Para qu sirve una computadora?:.........................................................................................13
Computadora y Circuitos:......................................................................................................14
HARDWARE Y SOFTWARE: ............................................................................................14
Software: ...........................................................................................................................14
Al software se lo clasifica en dos grupos: .....................................................................14
Hardware:...........................................................................................................................15
Arquitectura - Componentes Bsicos:...................................................................................15
Unidad de Control:.............................................................................................................15
Unidad aritmtico-lgica:..................................................................................................15
Memoria:(Memoria Central)..............................................................................................15
Perifricos: ........................................................................................................................15
Ncleo de la computadora: ...............................................................................................15
BUSES DE COMPUTADORAS:.........................................................................................16
Buses sncronos y asncronos: ..............................................................................................18
Arbitraje del bus:...............................................................................................................19
Ejemplo de encadenamiento margarita:.............................................................................19
Solicitud del Bus............................................................................................................19
Dispositivos de E/S............................................................................................................19
Manejo de interrupciones:.................................................................................................20
Canales de e/s.........................................................................................................................20
TECNOLOGA DE CANALES:.......................................................................................21
TIPOS DE CANALES:.....................................................................................................21
Multiplexor: ..................................................................................................................21
Selector..........................................................................................................................22
Multipexor por bloques: ................................................................................................22
Spoll: .........................................................................................................................22
SISTEMA OPERATIVO.......................................................................................................23
Introduccin: ....................................................................................................................23
QU ES UN SISTEMA OPERATIVO?.........................................................................24
CONCLUSIN........................................................................................................................25
BOLILLA II (Parte 1): EL NIVEL DE LOGICA DIGITAL.....................................................26
INDICE.....................................................................................................................................27
INTRODUCCIN...................................................................................................................34
EL NIVEL DE LOGICA DIGITAL......................................................................................35
COMPUERTAS Y ALGEBRA BOOLEANA......................................................................35
Compuertas........................................................................................................................35
Algebra booleana...............................................................................................................37
136

Implementacin de funciones booleanas ..........................................................................38


Equivalencia entre circuitos...............................................................................................40
CIRCUITOS DIGITALES BSICOS..................................................................................44
Circuitos integrados ..........................................................................................................44
Circuitos combinacionales ................................................................................................47
Multiplexores ................................................................................................................47
Decodificadores ............................................................................................................49
Comparadores ...............................................................................................................51
Arreglos (matrices) lgicos programables ....................................................................51
Circuitos aritmticos..........................................................................................................53
Registros de corrimiento................................................................................................53
Sumadores .....................................................................................................................54
Unidades aritmticas y lgicas......................................................................................55
Relojes ..............................................................................................................................55
MEMORIA............................................................................................................................57
Biestables...........................................................................................................................57
Bieslables SR sincronizados..........................................................................................59
Biestables D sincronizados............................................................................................59
Flip-flops y registros..........................................................................................................59
Registros........................................................................................................................60
Organizacin de las memorias...........................................................................................61
Propiedades de las memorias.............................................................................................64
MICROPROCESADORES y BUSES...................................................................................66
Microprocesadores ............................................................................................................66
Buses de computadora.......................................................................................................68
Buses sncronos .................................................................................................................70
BUSES ASINCRONOS....................................................................................................73
Arbitraje del bus ................................................................................................................74
Manejo de interrupciones ..................................................................................................77
CONCLUSIN........................................................................................................................79
BOLILLA II (Parte 2): EL NIVEL DE MICROPROGRAMACIN.......................................80
INDICE.....................................................................................................................................81
INTRODUCCIN...................................................................................................................88
EL NIVEL DE MICROPROGRAMACIN .......................................................................89
REPASO SOBRE EL NIVEL DE LGICA DIGITAL .......................................................90
Registros ..........................................................................................................................90
Buses .................................................................................................................................90
Multiplexores y decodificadores .......................................................................................92
Unidades aritmticas y lgicas y registros de corrimiento ...............................................92
Relojes ..............................................................................................................................93
Memoria principal .............................................................................................................94
Encapsulado de los componentes .....................................................................................95
UNA MICROARQUITECTURA TIPICA ...........................................................................96
La ruta de datos .................................................................................................................96
Microinstrucciones ............................................................................................................98
Cronologa de las microinstrucciones .............................................................................100
Secuenciamiento de las microinstrucciones ...................................................................102
UNA MACROARQUITECTURA TIPICA .......................................................................103

137

Pilas .................................................................................................................................103
El juego de macroinstrucciones ......................................................................................107
MICROPROGRAMACIN: UN EJEMPLO ....................................................................110
El lenguaje micro ensamblador .......................................................................................110
El ejemplo de microprograma .........................................................................................111
Observaciones sobre el microprograma ..........................................................................113
Perspectivas ....................................................................................................................114
EL DISEO DEL NIVEL DE MICROPROGRAMACIN ............................................115
Microprogramacin horizontal frente a microprogramacin vertical..............................115
Nanoprogramacin ..........................................................................................................122
Mejora del rendimiento ...................................................................................................123
Memoria cach ...............................................................................................................129
CONCLUSIN......................................................................................................................134
................................................................................................................................................135
BOLILLA II (Parte 3): EL NIVEL DE MAQUINA CONVENCIONAL................................135
INDICE...................................................................................................................................136
INTRODUCCIN.................................................................................................................143
EL NIVEL DE MQUINA CONVENCIONAL.................................................................144
EJEMPLOS DEL NIVEL DE MAQUINA CONVENCIONAL........................................144
FORMATOS DE INSTRUCCIN.....................................................................................145
Criterios de diseo de formatos de instruccin................................................................146
Cdigos de operacin con extensin...............................................................................147
Ejemplos de formatos de instrucciones...........................................................................149
La PDP-11...................................................................................................................149
Direccionamiento.............................................................................................................149
Direccionamiento inmediato........................................................................................150
Direccionamiento directo.............................................................................................150
Direccionamiento de registros.....................................................................................151
Direccionamiento indirecto..........................................................................................151
Indexacin....................................................................................................................152
Direccionamiento por medio de pilas..........................................................................153
Notacin polaca inversa...........................................................................................155
Evaluacin de frmulas en la notacin polaca inversa............................................157
Algoritmo.............................................................................................................157
Algoritmo.............................................................................................................157
Ejemplos de direccionamiento.....................................................................................160
Direccionamiento en la PDP-11..............................................................................160
Tipos de Instrucciones ........................................................................................................160
Instrucciones de movimiento de datos ............................................................................161
Operaciones binarias .......................................................................................................161
Operaciones unarias ........................................................................................................162
Comparaciones y Saltos Condicionales...........................................................................164
Instrucciones de llamada a procedimiento ......................................................................166
Control de iteraciones .....................................................................................................167
Entrada / salida ................................................................................................................168
Flujo De Control .................................................................................................................173
Flujo de control secuencial y saltos ................................................................................173
Procedimientos ................................................................................................................174
138

Corrutinas ........................................................................................................................179
Desvios ............................................................................................................................182
Interrupciones .................................................................................................................183
ACCIONES DE HARDWARE ..................................................................................183
ACCIONES DE SOFTWARE ...................................................................................184
CONCLUSIN......................................................................................................................187
BOLILLA III: ARQUITECTURA DEL PROCESADOR.......................................................188
INDICE...................................................................................................................................189
INTRODUCCIN.................................................................................................................196
ARQUITECTURA DEL PROCESADOR..........................................................................197
ESTRUCTURA GENERAL...............................................................................................197
DESCRIPCIN DE LOS COMPONENTES DE UN PROCESADOR ............................197
Microprocesadores...............................................................................................................200
EJECUCIN DE LAS INSTRUCCIONES .......................................................................201
ORGANIZACIN DE LA CPU ........................................................................................202
LA UNIDAD ARITMTICA Y LGICA .........................................................................204
LA UNIDAD DE CONTROL.............................................................................................206
FASE DE BSQUEDA DE LA INSTRUCCIN .............................................................207
FASE DE BSQUEDA O ALMACENAMIENTO DEL OPERANDO ...........................207
Caso de bsqueda del operando, seguido de procesamiento: .........................................207
Caso de almacenamiento del operando: ..........................................................................208
FASE DE PREPARACIN DE LA SIGUIENTE INSTRUCCIN .................................209
INSTRUCCIN DE RUPTURA DE SECUENCIA ..........................................................209
EL CANAL..........................................................................................................................210
LAS UNIDADES PERIFRICAS .....................................................................................211
INTERRUPCIONES ..........................................................................................................211
CONCLUSIN......................................................................................................................214
BOLILLA IV: MEMORIA........................................................................................................215
INDICE...................................................................................................................................216
INTRODUCCIN.................................................................................................................223
MEMoRia ..............................................................................................................................224
DIRECCIONES DE MEMORIA .......................................................................................225
ORDENAMIENTO DE BYTES ........................................................................................226
CDIGOS CORRECTORES DE ERRORES ....................................................................227
CLASIFICACIN Y ORGANIZACIN DE LAS MEMORIAS .....................................227
PARMETROS y CARACTERSTICAS MS IMPORTANTES DE UNA MEMORIA 228
Capacidad.........................................................................................................................228
Formas de acceder a las posiciones de memoria ............................................................229
Memorias de acceso aleatorio (RAM = Ramdom Acess Memory) ............................229
Estructura de una RAM semiconductora ................................................................231
Pastillas de memoria en paralelo ........................................................................233
Memorias pasivas....................................................................................................235
Memorias de acceso serie ...........................................................................................236
Memorias asociativas ..................................................................................................238
MODOS DE DIRECCIONAMIENTO ..........................................................................239
Modo de direccionamiento directo .............................................................................239
139

Modo de direccionamiento indirecto ..........................................................................240


Modo de direccionamiento relativo ............................................................................240
Modo de direccionamiento indexado ..........................................................................242
Modo de direccionamiento por registro indirecto .......................................................243
Otros modos de direccionamiento ..............................................................................244
CONCLUSIN......................................................................................................................245
................................................................................................................................................246
BOLILLA V: EL NIVEL DEL LENGUAJE ENSAMBLADOR.............................................246
INDICE...................................................................................................................................247
INTRODUCCIN.................................................................................................................254
EL NIVEL DEL LENGUAJE ENSAMBLADOR..............................................................255
INTRODUCCIN AL LENGUAJE ENSAMBLADOR ...................................................256
Qu es un lenguaje ensamblador? .................................................................................256
Formato de una sentencia en lenguaje ensamblador .......................................................257
Comparacin entre el. lenguaje ensamblador y los lenguajes de alto nivel ...................258
Afinacin de programas ..................................................................................................259
EL PROCESO DE ENSAMBLAJE ...................................................................................261
Ensambladores de dos pasadas .......................................................................................261
La primera pasada ...........................................................................................................262
La segunda pasada ..........................................................................................................266
La tabla de smbolos .......................................................................................................267
MACrOS .............................................................................................................................269
Definicin, llamada y expansin de una macro ..............................................................269
Macros con parmetros ...................................................................................................271
Implementacin de macros en un ensamblador ..............................................................271
MONTAJE (LINKING) y CARGA ...................................................................................272
Tareas realizadas por el programa ensamblador .............................................................274
Estructura de un mdulo objeto ......................................................................................276
Tiempo de ligadura y reubicacin dinmica ...................................................................277
Enlace dinmico ..............................................................................................................279
CONCLUSIN......................................................................................................................282
BOLILLA VI (Parte 1): PERIFRICOS.................................................................................283
INDICE...................................................................................................................................284
INTRODUCCIN.................................................................................................................291
PERIFRICOS......................................................................................................................292
RESEA HISTRICA.......................................................................................................292
INTRODUCCIN ...............................................................................................................292
PERlFERICOS DE ENTRADA: ........................................................................................293
TECLADO: .....................................................................................................................293
Cuidados y advertencias..............................................................................................294
MOUSE (RATON) .........................................................................................................295
Tipos de ratones...........................................................................................................296
Ratones Inalmbricos. .............................................................................................296
Ratones Estacionarios..............................................................................................296
PANTALLAS TCTILES: ............................................................................................296

140

BOLAS GIRATORIAS: .................................................................................................296


ESCANER ......................................................................................................................296
Profundidad de color....................................................................................................296
Tipos de escner:.........................................................................................................297
Escner de mano: ....................................................................................................297
Ventaja: ...............................................................................................................297
Desventajas: ........................................................................................................297
Escner de Sobremesa: ...........................................................................................297
Ventajas: .............................................................................................................297
Desventajas: ........................................................................................................297
Escner de Rodillo:..................................................................................................297
Calibracin...................................................................................................................297
LECTORES DE CODIGO DE BARRA.....................................................................297
TABLETA DIGITALIZADORA....................................................................................298
LECTORES DE TARJETAS MAGNETICAS...............................................................298
LAPIZ OPTICO: ............................................................................................................298
PERIFERICOS DE ALMACENAMIENTO: .................................................................299
Discos...........................................................................................................................299
Discos flexibles............................................................................................................299
Fiabilidad del soporte. .............................................................................................300
Facilidad de manejo y almacenamiento. .................................................................300
1. Disco flexible de 5 1/4 pulgadas .....................................................................300
2. Disco flexible de 3 1/2pulgadas ......................................................................300
Disco duro....................................................................................................................300
Discos opticos: ............................................................................................................301
Cintas magneticas: ......................................................................................................302
DVD:............................................................................................................................302
Prestaciones del DVD: ............................................................................................303
El disco por dentro: .................................................................................................303
La compresin MPEG-2: ........................................................................................303
El futuro del DVD: .................................................................................................303
PERIFERICOS DE SALIDA: ............................................................................................304
PANTALLAS DE SISTEMAINFORMATICO (Monitor): ...........................................304
Impresoras........................................................................................................................305
Impresoras con cinta entintada: ..................................................................................305
Impresora de Bola: ..................................................................................................305
Impresoras de agujas: ..............................................................................................306
Impresoras sin cinta entintadas: ..................................................................................306
Impresoras trmicas: ...............................................................................................306
Impresoras de inyeccin de tinta: ...........................................................................306
Impresoras lser: .....................................................................................................306
Impresoras Lser de color: ......................................................................................306
PERIFERICOS DE COMUNICACION.. ..........................................................................307
MODEM..........................................................................................................................307
Aspectos tcnicos.........................................................................................................307
Como usar la Tecnologa 56K ................................................................................307
CONCLUSIN....................................................................................................................308
CONCLUSIN......................................................................................................................309
BOLILLA VI (PARTE 2): TCNICAS Y DISPOSITIVOS DE ENTRADA SALIDA...........310

141

INDICE...................................................................................................................................311
INTRODUCCIN.................................................................................................................318
TECNICAS Y DISPOSITIVOS DE ENTRADA / SALIDA (Input / Ouput)..................319
Dispositivos de fichas y de banda perforada.......................................................................319
Dispositivos de soporte magntico......................................................................................323
Impresoras............................................................................................................................323
Plotter...................................................................................................................................330
La pantalla............................................................................................................................331
Terminales...........................................................................................................................332
Procesos de comunicacin para la transmisin de datos a distancia...................................334
Otros perifricos..................................................................................................................334
Tcnicas de entrada/salida (input/output)............................................................................335
Polling (interrogatorio de trfico) ...................................................................................336
Interrupciones (interrupts) ..............................................................................................338
Transferencia DMA ........................................................................................................339
GLOSARIO.........................................................................................................................340
CONCLUSIN......................................................................................................................342
CONCLUSIN FINAL..............................................................................................................343
BIBLIOGRAFA .......................................................................................................................344

142

INTRODUCCIN

143

APUNTES DE CATEDRA
CARRERA:
Ctedra:
Profesor:
AO:

LICENCIATURA EN ANALISIS DE SISTEMAS


INGENIERIA EN SISTEMAS
Procesamiento De Datos I
Lic. Marcelo Martinez
2003

EL NIVEL DE MQUINA CONVENCIONAL


En este captulo se introduce el nivel de mquina convencional (nivel 2) y se revisan
muchos aspectos de su arquitectura. Histricamente, el nivel 2 se desarroll antes que los
dems, y por ello an se le suele denominar (incorrecta- mente) "el" lenguaje de mquina.
Esta situacin se ha establecido as porque en muchas mquinas el microprograma est en
memoria de lectura solamente, lo que significa que los usuarios (a diferencia del fabricante
de la mquina) no pueden escribir programas para el nivel 1. Incluso en mquinas que
pueden ser microprogramazas por el usuario, la enorme complejidad de la arquitectura del
nivel 1 es suficiente para descorazonar a los programadores ms atrevidos. Debido a que no
hay mquinas con protecciones de hardware al nivel 1, tampoco, es posible permitir a una
persona que depure microprogramas nuevos mientras otra est usando la mquina. Esta
caracterstica inhibe an ms la prctica de la microprogramacin por los usuarios.

EJEMPLOS DEL NIVEL DE MAQUINA CONVENCIONAL


Ms que intentar la definicin rigurosa de lo que es el nivel de la mquina
convencional (10 que de cualquier manera es casi imposible), se presentar este nivel
viendo los ejemplos usuales, primero Intel y despus Motorola. El propsito de estudiar las
familias de CPU existentes es mostrar como las ideas vertidas aqu pueden aplicarse en el
"mundo real". Se compararn y vern los contrastes de estas mquinas en diversas formas,
para mostrar cmo diferentes diseadores toman distintas elecciones.
No debe llegarse a la conclusin de que el resto de este libro se refiere a la:
programacin de las CPU de Intel y Motorola. Lejos de eso, estas mquinas se usarn para
ilustrar la idea del diseo de una computadora como una serie de niveles. Se examinarn
varias de las caractersticas de sus respectivas arquitecturas y se proporcionar, donde sea
necesario, informacin acerca de su programacin. Sin embargo, no se pretende presentar
una descripcin completa. Para un conocimiento cabal de todos los detalles de estas
mquinas, srvase consultar las publicaciones del fabricante.
Por ltimo, este captulo se refiere en principio a la arquitectura e instrucciones
utilizadas por el usuario comn (v.g., programas de aplicacin). Aquellas que son de inters
para los diseadores de sistemas operativos, se omitirn o diferirn hasta la exposicin del
tema en el captulo 6.

144

FORMATOS DE INSTRUCCIN
Un programa consta de una secuencia de instrucciones, cada una de las cuales
especifica una accin particular. Una parte de la instruccin, llamada cdigo de operacin,
seala la accin que va a ejecutarse. Muchas instrucciones contienen los datos que usan o
especifican dnde estn. Por ejemplo, una instruccin que compare dos caracteres para ver
si son iguales debe especificar qu caracteres se han de comparar. Todo lo relativo a la
especificacin de dnde est el dato (direccin) se llama direccionamiento y se ver en la
seccin 5-3.
La figura 5-17 muestra varios formatos tpicos de instrucciones de nivel 2. En
algunas mquinas de nivel 2 todas las instrucciones tienen igual longitud; en otras pueden
haber dos o tres longitudes. Por otra parte, las instrucciones pueden ser de longitud menor,
igual o mayor que la longitud de palabra.
Algunas relaciones posibles entre longitudes de instruccin y de palabra se muestran
en la figura 5-18.
Cdigo de operacin
(a)
Direccionamiento
(b)
Cdigo de operacin Direccionamiento 1 Direccionamiento 2
(c)
Fig. 5-17. Tres formatos tpicos de instruccin: a) Instruccin sin
direccin. b) Instruccin con una direccin. c) Instruccin con dos
direcciones.
Cdigo de operacin

Palabra 1
Direccionamiento
0
Instruccin
1
Instruccin
2
Instruccin
3
Instruccin
(a)
Direccionamiento
0
Instruccin
1
Instruccin
2
3
Instruccin
4
5
Instruccin
6
7
Instruccin
(c)
Fig. 5-18. Algunas
palabra

Palabra 1
Direccionamiento
0 Instruccin
1 Instruccin
2 Instruccin
3 Instruccin

Instruccin
Instruccin
Instruccin
Instruccin
(b)

Instruccin
Instruccin
Instruccin
Instruccin

Instruccin
Instruccin
Instruccin
Instruccin

Direccionamiento
0 Instruccin
Instruccin
Instruccin
Instruccin
1
Instruccin
Instruccin
2 Instruccin
Instruccin
Instruccin
3
Instruccin
Instruccin
Instruccin
4 Instruccin
Instruccin
Instruccin
5
Instruccin
Instruccin
6
Instruccin
7
Instruccin
Instruccin
(d)
relaciones posibles entre la longitud de la instruccin y la de la

145

Criterios de diseo de formatos de instruccin


Cuando un grupo de diseadores de una computadora ha de elegir un formato (o
formatos) de instruccin, debe considerar multitud de factores. El primero, y el ms
importante, es que las instrucciones cortas son mejores que las largas. Un programa
compuesto den instrucciones de 16 bits ocupa solamente la mitad del espacio de memoria
que uno con n instrucciones de 32 bits. Despus de todo, la memoria no es gratuita y por
eso los diseadores no desean malgastarla intilmente.
Una segunda razn es que la memoria tiene una velocidad de transferencia particular,
determinada por su tecnologa y diseo. La velocidad de transferencia o caudal de una
memoria es el nmero de bits por segundo que pueden ser ledos de ella. Una memoria
rpida puede dar el procesador (o a un dispositivo de E/S) ms bits por segundo que una
memoria lenta.
Si el caudal de una memoria particular es de t bits por segundo y la longitud media de
instruccin es de r bits, entonces la memoria puede entregar al mximo t/r instrucciones
por segundo. Esto significa que la velocidad de ejecucin de las instrucciones (es decir, la
velocidad del procesador) depende de la longitud de ellas. Las ms cortas equivalen a un
procesador ms rpido. Si el tiempo requerido para ejecutar una instruccin es muy largo
en comparacin con el requerido para extraera de la memoria, entonces el tiempo de
extraccin de la instruccin no ser tan importante. Sin embargo, con CPU rpidas las
memorias suelen ser un cuello de botella. En consecuencia, un importante criterio de diseo
consiste en aumentar el nmero de instrucciones extradas por segundo.
Un segundo criterio de diseo de los formatos de instruccin es dejar suficiente sitio
en la instruccin para expresar todas las operaciones deseadas. Es imposible concebir una
mquina con 2n operaciones y una instruccin con menos de n bits. Simplemente no habr
suficiente espacio en el cdigo de operacin para indicar qu instruccin se requiere.
Un tercer criterio consiste en que es muy conveniente que la longitud de la palabra de
mquina sea un mltiplo entero de su longitud de carcter. Si el cdigo de los caracteres
tiene k bits, la longitud de palabra deber ser k, 2k, 4k, 5k y as sucesivamente; de otra
manera, se derrochar espacio cuando se almacenen caracteres. Naturalmente, es posible
almacenar 3.5 caracteres por palabra, pero ello causar una grave ineficiencia en el acceso
a los caracteres. Las restricciones Impuestas en la longitud de palabra por el cdigo de los
caracteres afectan a la longitud de instruccin, ya que o bien una instruccin debe ocupar
un nmero entero de palabras o bien un nmero entero de instrucciones debe llenar una
palabra. Seria probablemente una catstrofe un diseo con un carcter de 9 bits, una
instruccin de 12 bits y una palabra de 31 bits.
Un cuarto criterio concierne al nmero de bits del campo de direccin. Consideremos
el diseo de una mquina con un carcter de 8 bits (posiblemente 7 bits ms el de paridad)
y una memoria principal que deba contener 215 caracteres. Los diseadores podrn optar
por asignar direcciones consecutivas a unidades de 8, 16, 24 o 32 bits, entre otras
posibilidades.
Imaginemos qu ocurrira si el equipo de diseo degenerase en dos facciones rivales,
una partidaria de hacer del byte la unidad bsica de memoria y la otra partidaria de que lo
sea la palabra de 32 bits. El primer grupo propondr una memoria de 216 bytes numerados
0, 1, 2, 3,..., 65535; el otro, una de 214 palabras numeradas 0,1,2,3,..., 16383.
El primer grupo aducir que, para comparar dos caracteres en la organizacin de
palabras de 32 bits, el programa no solamente tendra que extraer las palabras que
contienen los caracteres, sino extraer tambin cada carcter de su palabra para
compararlos. Hacer esto cuesta instrucciones adicionales y por lo tanto derrocha espacio.
Adems, la organizacin de 8 bits proporciona una direccin para cada carcter, haciendo
as ms fcil la comparacin.
Los partidarios de la palabra de 32 bits replicarn que su propuesta requiere
solamente 214 direcciones diferentes, dando una longitud de direccin de slo 14 bits,
mientras la propuesta del byte requiere 16 bits para direccionar la misma memoria. Una
direccin ms corta significa una instruccin ms corta, lo que no solamente ocupa menos
espacio sino que tambin requiere menos tiempo de extraccin. De igual modo, podran
retener la direccin de 15 bits para hacer referencia a una memoria cuatro veces mayor que

146

la que admite la organizacin de 8 bits.


Este ejemplo demuestra que, para tener una mayor resolucin de memoria, se debe
pagar el precio de direcciones ms largas, lo que, en general, significa instrucciones ms
largas. Lo decisivo ser una organizacin de memoria en que cada bit sea direccionable
directamente (por ejemplo, en la Burroughs B1700), y en el otro extremo ser una memoria
compuesta de palabras muy largas (por ejemplo, la serie Cyber de CDC tiene palabras de
60 bits).

Cdigos de operacin con extensin


En la seccin anterior vimos cmo se puede llegar a un compromiso entre direcciones
cortas y una buena resolucin de memoria. En esta seccin examinaremos los compromisos
entre los cdigos de operacin y las direcciones. Consideremos una instruccin de n + k bits
con un cdigo de operacin de k bits y una nica direccin den bits. Esta instruccin admite
2k operaciones diferentes y 2n celdas de memoria direccionables. Alternativamente, los
mismos n + k bits podran repartirse entre un cdigo de operacin de k -l bits y una
direccin de k + 1 bits, lo que supone la mitad de instrucciones pero el doble de memoria
direccionable, o igual cantidad de memoria pero el doble de resolucin. Un cdigo dc
operacin de k + 1 bits y una direccin de n-l bits da ms operaciones. El precio es, sin
embargo, o un menor nmero de clulas direccionables o peor resolucin con igual cantidad
de memoria. Es posible encontrar soluciones intermedias entre los bits del cdigo de
operacin y los de la direccin, adems de la muy sencilla que se acaba de describir. El
esquema descrito en el prrafo siguiente se llama cdigo de operacin con extensin.
El concepto de un cdigo de operacin con extensin puede verse ms claramente
mediante un ejemplo. Consideremos una mquina en la que las instrucciones tienen 16 bits
de longitud y las direcciones 4 bits, como muestra la figura 5-19. Esta situacin podra ser
razonable en una mquina que tuviese 16 registros (por tantas direcciones de registro de 4
bits) en los que se efectuaran todas las operaciones aritmticas. Un diseo posible seria un
cdigo de operacin de 4 bits y tres direcciones en cada instruccin, que dan 16
instrucciones de tres direcciones.
15

14

13

12

11

10

Cdigo de operacin
Direccin 1
Direccin 2
Direccin 3
Fig. 5-19. Instruccin con cdigo de operacin de 4 bits y tres campos de direccin de 4 bits cada uno
Sin embargo, si los diseadores necesitan 15 instrucciones de tres direcciones, 14
dedos, 31 de una y 16 sin direccin, pueden usar los cdigos de operacin 0 a 14 como
instrucciones de tres direcciones, pero interpretar el cdigo de operacin 15 de manera
diferente (vase figura 5-20).

147

El cdigo de operacin 15 indica que el cdigo de operacin est contenido en los bits
8 a 15 en lugar de estar en los bits 12 a 15. Los bits 0 a 3 y 4 a 7 for man dos direcciones,
como es usual. Las 14 instrucciones de dos direcciones tienen todas 1111 en los cuatro bits
de la izquierda y nmeros desde 0000 a 1101 en los bits 8 a 11. Las instrucciones con 1111
en los cuatro bits de la izquierda y 1110 o 1111 en los bits 8 a 11 sern tratados
especialmente, como si sus cdigos de operacin estuviesen en los bits 4 a 15. El resultado
permite 32 nuevos cdigos de operacin. Puesto que solamente se necesitan 31.
111111111111 se interpretan como si el cdigo de operacin real estuviera en los bits 0 a
15, con lo que se obtienen 16 instrucciones sin direccin.
Ntese que, segn se avanza en esta explicacin, el cdigo de operacin se va
haciendo ms y ms largo; esto es, las instrucciones de tres direcciones tienen un cdigo de
operacin de 4 bits, las dedos direcciones tienen uno de 8 bits, las de una direccin lo
tienen de 12 bits y la de ninguna direccin lo tienen de 16 direcciones.
En la prctica, los cdigos de operacin extendidos no se comportan de manera tan
limpia y regular como en el ejemplo, en el que se asumi que todos los operandos requieren

148

de 4 bits. De hecho, se requiere con frecuencia una diversidad de longitudes y formatos.

Ejemplos de formatos de instrucciones


En esta seccin, se examinarn los formatos de instrucciones de la PDP-11 de Intel y
de Motorola en el nivel de mquina convencional. Se incluye aqu a la PDP-11, pues su
limpieza y regularidad da luz a los futuros arquitectos de conjuntos de instrucciones.

La PDP-11
La mayora de las instrucciones dedos operandos de la PDP-11 se codifican como se
muestra en la figura 5-21. Cada una tiene un cdigo de operacin de 4 bits y dos campos
de direccin de 6 bits. El bit ms a la izquierda del cdigo de operacin indica si la
instruccin opera en bytes o en palabras. Los campos de direcciones se subdividen en dos
campos de 3 bits, uno para el modo y otro para el registro (la PDP-11 tiene E registros). Los
campos de modo indican si el operando est en un registro, en la memoria, si es una
constante, etc. Los mismos ocho modos que estn disponibles para los operandos de origen,
lo estn tambin para los de destino y cualquier cdigo de operacin se puede usar con
cualquier operando, fuente o destino. A un juego de instrucciones en el que el mtodo para
especificar las direcciones de los operandos es independiente del cdigo de operacin, se le
denomina ortogonal. Quienes programan compiladores tienen preferencia por los juegos de
instrucciones ortogonales.
Para unas cuantas instrucciones, incluyendo a las de un operando, la PDP-11 utiliza un
esquema de cdigo de operacin extendido, usando cdigos xlii (binario) como escape hacia
cdigos de operacin ms largos. Tambin aqu se presenta una regularidad considerable,
por ejemplo, la mayora de las instrucciones de un operando usan cdigos de operacin de
10 bits y los mismos 6 bits para los campos de modo y registro que en las instrucciones de
dos operandos. Las instrucciones de la PDP-11 que direccionan memoria, tienen una o dos
palabras adicionales de 16 bits en seguida de la instruccin para especificar la direccin.

Direccionamiento
Las instrucciones pueden clasificarse segn el nmero de direcciones que usan.
Recurdese que una coleccin numerada de registros forma, de hecho, una memoria de alta
velocidad y define un espacio de direcciones. Una instruccin que sume el registro 1 con el
registro 2 debera clasificarse como de dos direcciones porque la instruccin debe
especificar qu registros han de sumarse, de la misma manera que una instruccin que
sume dos palabras de memoria debe especificar qu palabras se suman.
Son comunes instrucciones que especifican 1, 2 y 3 direcciones. En muchas mquinas
que hacen operaciones aritmticas con tina sola direccin, un registro especial llamado
acumulador proporciona uno de los operando. En estas mquinas la direccin es
generalmente la de una palabra de memoria m donde est situado el operando. La
instruccin de suma que especifica la direccin m tiene el efecto de
acumulador: = acumulador + memoria [m]
Las instrucciones de suma con dos direcciones usan una de las direcciones como
fuente y la otra como destino. La fuente se aade al destino:
destino: = destino + fuente
Las instrucciones de tres direcciones especifican dos fuentes y un destino. Las dos
fuentes se suman y se guardan en el destino.
Hasta ahora hemos prestado poca atencin a la forma en que son interpretados los
bits de un campo de direccin para encontrar el operando. Una posibilidad consiste en que
contengan la direccin de memoria del operando. Sin embargo existen tambien otras

149

posibilidades. Exploraremos algunas de ellas en las secciones siguientes.

Direccionamiento inmediato
El modo ms simple de que una instruccin especifique un operando es que la parte
de direccin de la instruccin contenga ya el operando mismo, en lugar de una direccin u
otra informacin que describa dnde esta. Este operando se denomina operando
inmediato, porque se extrae en forma automtica de la memoria, al mismo tiempo que la
instruccin; de aqu que est inmediatamente disponible para su utilizacin.
El direccionamiento inmediato tiene la virtud de no requerir de referencias adicionales
a memoria para extraer el operando. Tiene la desventaja de restringir el operando a un
nmero que pueda caber en el campo de direccin. En una instruccin con una direccin de
tres bits (por ejemplo, un campo de registro), los operandos slo podrn tener tres bits, lo
que [imita bastante su utilidad.
Las CPU de Intel no poseen un modo de direccionamiento para operandos inmediato.
En su lugar, tienen una gran cantidad de instrucciones distintas en las que uno de los
operandos es inmediato. Por ejemplo, en la figura 5-5 la instruccin ADD se ve correcta y
ortogonal como en la PDP-1 1. En realidad, se utilizan nueve cdigos de operacin para
ADD, cinco de ellos para operandos inmediatos, dependiendo de la longitud de stos (8,16 o
32 bits) y de como se especifique el destino.
Los 680x0 tienen un modo de direccionamiento inmediato, de forma que cualquier
operando fuente puede ser una constante. En algunas instrucciones del 68000 (ver figura
5-24) solo se aceptan constantes de 8 a 16 bits, pero en el 68020 y el 68030 se permiten
las tres longitudes en cualquier parte. Adems, instrucciones especiales como ADDI, ADDQ
y CMPI permiten que las instrucciones inmediatas se codifiquen en forma ms eficiente.

ADDQ
SUBQ
SCC
DBCC

15
0
0
0
0

14
1
1
1
1

13
0
0
0
0

12
11
10
9
8
7
1
Dato
0
1
Dato
1
1
Condicin
1
1
Condicin
1
Fig. 5-24. Cuatro instrucciones

4
3
Modo
Modo
1
Modo
1
0
0
1
de la 68000.

1
Reg
Reg
Reg
Reg

Direccionamiento directo
Otro mtodo sencillo de especificar un operando es dar la direccin de la palabra de
memoria donde est contenido. Este proceso se llama direccionamiento directo. Se
discutirn ms adelante los detalles por OS que la computadora sabe qu direcciones son
inmediatas y cules son directas. Existen en general dos enfoques: usar cdigos de
operacin diferentes, o usar un modo de direccionamiento especial para cada tipo de
operando.
Todas las CPU de Intel tienen direccionamiento directo. Tanto Cl 8088 como el 80286
utilizan direccionamiento directo de 16 bits. El 80386 usa direcciones de 16 bits en los
modos real y virtual y segmentos de 16 bits en el modo protegido. En el modo protegido de
32 bits, las direcciones directas tienen 32 bits de longitud. Ntese que en todos los casos las
direcciones directas son demasiado cortas para cubrir todo el espacio de direcciones,
Los 680x0 tienen dos formas de direccionamiento directo, una con una direccin de 16
bits y otra con una de 32 bits. Se puede accesar a las direcciones de los primeros 64K de
memoria con la forma corta, pero las direcciones que superan los 64K necesitan la forma
larga. Estas dos formas se indican por los valores del campo MODO de tres bits, y por tanto
se aplican a todas las instrucciones de la figura 5-23 que tienen uno o ms campos de
OPERANDO.

150

Direccionamiento de registros
El direccionamiento de registros es conceptualmente igual que el direccionamiento
directo. En esta forma de direccionamiento el campo de direccin contiene el nmero del
registro donde est almacenado el operando. Una mquina con 16 registros y 65 536
palabras de memoria tiene realmente dos espacios de direcciones. Se puede considerar que,
en dicha mquina, una direccin tiene dos partes: a) un bit que indica sise desea un
registro o una palabra de memoria y b) un campo de direccin que indica el registro o
palabra de memoria que se desea. Puesto que hay menos registros que palabras de
memoria, se necesitan direcciones ms pequeas para stos; por eso se utiliza a menudo
un formato de instruccin diferente para operandos en registro y para operandos en
memoria.
Si hubiera una instruccin de registros por cada instruccin que direccionan memoria,
la mitad de los cdigos de operacin se referiran a operandos situados en memoria y la
otra mitad a operandos situados en registros. Seria necesario un bit en el cdigo de
operacin para especificar qu espacio de direcciones se va a utilizar. Se ver ms claro que
estamos usando dos espacios de direcciones si dicho bit se traslada desde el campo de
cdigo de operacin al de direccin. El bit indicara entonces qu espacio de direcciones
usar.
Se disean mquinas Con registros por dos razones: a) los registres son ms rpidos
que la memoria Central, y b) como hay pocos, slo se necesitan unos cuantos bits para
direccionarlos. Por desgracia> el tener 80 15 registros complica en gran medida la
programacin porque deben tomarse decisiones respecto a los operandos y a los resultados
intermedios que van a conservarse en el limitado nmero de registros y respecto a los que
van a guardarse en la memoria central. W. L. van del Poel (1958), seal con acierto que
las computadoras deberan estar dotadas de 0, 1 o suficientes ejemplares de cada recurso
para que los programadores no perdieran el tiempo pensando qu hacer si se acaban (regla
de ninguno, uno o infinitos).
Tanto las pastillas de Intel como las de Motorola tienen un amplio repertorio de
instrucciones que toman sus operandos de registros y depositan sus resultados tambin en
registros.

Direccionamiento indirecto
En el direccionamiento directo la direccin especifica la palabra de memoria o registro
que contiene el operando. En el indirecto la direccin especfica la palabra de memoria o
registro que contiene no el operando, sino la direccin del operando.
Primero, el contenido de la posicin 000 se lleva a un registro interno de la CPU. Este
nmero de 15 bits (1510) no se pone en R1. Si as fuera, como en la figura 5-25(a),
tendramos una instruccin con direccionamiento directo. En vez de eso, se extrae el
contenido de la posicin 1510 y se pone en R1. El contenido de la posicin 1000 no es el
operando sino que "apunta" al operando. Por eso se dice que es un apuntador.
Todos los procesadores de Intel tienen direccionamiento indirecto a travs de un
registro. Por ejemplo, es posible poner un apuntador en SI y especificar que el operando
est ubicado en memoria en la direccin a la que apunta SI. En el 8088 y en el 80286 slo
se pueden direccionar en forma indirecta los registros BX, SI y DI; en tanto que en el 80385
se pueden utilizar todos los registros. No es posible levar a cabo el direccionamiento
indirecto en ninguno de stos utilizando un apuntador en la memoria.

151

El 68000 permite el direccionamiento indirecto a travs de los registros de direcciones


mas no de otra forma. En el 68020 yen el 68030, el direccionamiento indirecto se puede
realizar a travs de memoria, en diversas formas. Esta es una de las principales diferencias
entre el 68000 y las CPU ms recientes.

Indexacin
Muchos algoritmos exigen la realizacin de operaciones sobre una secuencia de datos
estructurados, almacenados en posiciones de memoria consecutivas. Por ejemplo,
consideremos un bloque de n palabras de mquina que ocupan las posiciones
A, A + 1, A + 2 ,..., A + n - 1
que deben ser trasladadas a las posiciones
B, B + 1, B + 2 ,..., B + n - 1
Suponiendo que la mquina tenga una instruccin
MOVE A,B
que traslade el contenido de la posicin A a la B, se podra ejecutar esta instruccin y
modificarla para obtener
MOVE A + 1, B + 1
ejecutarla otra vez, modificarla una vez ms y repetir el ciclo hasta que las n palabras
hayan sido copiadas.
Aunque durante un tiempo los programas que se modificaban a s mismos eran muy
populares, ahora se consideran una tcnica de programacin poco afortunada. Entre otras
razones porque son difciles de depurar y obstaculizan la comparticin de un programa entre
varios usuarios de un sistema de tiempo compartido.
El problema de copiar podr tambin resolverse mediante direccionamiento indirecto.
152

La direccin de A se cargar en un registro o en una palabra de memoria. Lo mismo se har


con la direccin de B. La instruccin MOVE usa dichos registros o palabras como
apuntadores. Despus de copiar cada palabra, ambos apuntadores se incrementarn en 1
unidad. Naturalmente los apuntadores son parte de los dalos, no del programa, y por tanto
no son compartidos por usuarios simultneos.
Otra solucin consiste en tener uno o ms registros llamados registros de ndice,
que funcionan como sigue. Los campos de direccin tienen dos panes: la direccin del
registro de ndice y una constante. La direccin del operando es la suma de la constante y el
contenido del registro de ndice. En el ejemplo anterior, si ambas direcciones se indexaran
usando un registro de ndice que contuviera el entero k, la instruccin MOVER A, B
trasladara el contenido de la posicin de memoria A + k a la B + k. Si inicializamos el
registro de ndice a 0 y lo incrementamos en uno despus de copiar cada palabra, slo ser
necesario un registro para la iteracin de copia. Adems, incrementar un registro es ms
rpido que incrementar una posicin de memoria.
Tambin suele usarse la indexacin para acceder a un campo determinado de una
estructura, si se conocen la direccin de comienzo de la estructura y la posicin del campo
dentro de ella. Las variables locales de un procedimiento se accesan en esta forma.
En el ejemplo precedente era necesario incrementar explcitamente el registro ndice
despus de cada uso del mismo. La necesidad de incrementar o decrementar un registro
ndice justo antes o despus de usarlo es tan corriente, que algunas computadoras cuentan
con instrucciones especiales, modos de direccionamiento o incluso registros ndice
especiales que automticamente se incrementan o decrementar. La modificacin automtica
de un registro ndice se llama auto-indexacin.
Tanto las pastillas de Intel como las de Motorola tienen una diversidad de modos de
direccionamiento que involucran indexacin. En el caso de los 680x0, tambin tienen autoindexacin.

Direccionamiento por medio de pilas


Ya se ha dicho que conviene tener instrucciones de mquina lo ms breves posible
para ahorrar tiempo de CPU y memoria. La reduccin de las longitudes de las direcciones se
puede llevar al extremo de tener instrucciones sin direccin, nicamente con cdigo de
operacin. Aunque parezca increble, esta situacin es posible: se lleva a cabo organizando
la mquina a base de una estructura de datos llamada pila.
Una pila consta de datos elementales (palabras, caracteres, bits, etc.) almacenados
en orden consecutivo en la memoria. El primer dato introducido en la pila se dice que est
en el fondo de ella. El que se ha introducido ms recientemente se dice que est en su
cima. Hay siempre un registro o una palabra de memoria asociada a la pila que contiene la
direccin de su cima. Se denomina apuntador de pila.
Aunque ya estudiamos las pilas en el capitulo 4, aqu las revisaremos brevemente,
porque emplearlas para hacer aritmtica es algo diferente que usarlas para guardar
variables locales (aunque, por supuesto, se pueden combinar). La figura 5-26 ilustra el
funcionamiento de una pila. En la figura 5-26(a) hay ya dos datos en la pila. El fondo de la
pila est en la posicin 1000 de la memoria y la cima en la posicin 1001. El apuntador de
pila contiene 1001, que es la direccin del dato que est en la cima de la pila; es decir,
"apunta" hacia la cima. En la figura 5-26(b) se ha introducido un 6 en la pila y el
apuntador indica 1002 como una nueva cima. En la figura 5-26(c) se ha apilado un 75,
tomando el apuntador el valor 1003. En la figura 5-26(d) se han desapilado el 75.

153

Las computadoras que estn orientadas a pila tienen una instruccin para apilar el
contenido de una posicin de memoria o de un registro. Tal instruccin debe copiar el dato e
incrementar el apuntador de la pila. Igualmente, una instruccin para extraer el contenido
de la cima de la pila y llevarlo a un registro o a una posicin de memoria debe hacer una
nueva copia en el sitio apropiado y decrementar el puntero de pila. Algunas computadoras
tienen sus pilas de arriba a abajo, de manera que los datos nuevos se introducen en
posiciones de memoria consecutivas en orden descendente, en lugar de hacerlo en
posiciones consecutivas en orden ascendente, como en la figura 5-26.
Las instrucciones sin direcciones se usan en asociacin con una pila. Esta forma de
direccionamiento especifica que los dos operandos se desapilan uno despus de otro, se
realiza la operacin (por ejemplo, una multiplicacin o un Y lgico) y el resultado se vuelve
a introducir en la pila. La figura 5-27(a) muestra una pila con cuatro datos. Una
instruccin de multiplicar tiene el efecto de desapilar el 5 y el 6, reajustando temporalmente
el apuntador a 1001. Una vez hecha la operacin, el resultado, 30, se apila como se ilustra
en la figura 5-27(b). Si posteriormente se realizara una suma, se obtendr el resultado
mostrado en la figura 5-27(c).

154

Notacin polaca inversa


Desde hace mucho tiempo es tradicional en matemticas escribir el operador entre los
operandos, como en x + y, en lugar de escribirlo despus de ellos, como en x y +. La
notacin que incluye el operador entre los operandos se llama infija. La que pone el
operador despus de los operandos se llama notacin posfija o, ms comnmente, notacin
polaca inversa por ser el lgico polaco J. Lukasiewicz (1958) quien investig sus
propiedades.
La notacin polaca inversa tiene algunas ventajas sobre la notacin infija para
expresar frmulas algebraicas. Primero, cualquier frmula puede ser expresada sin
parntesis. Segundo, es muy conveniente para evaluar frmulas en computadoras con pilas.
Tercero, los operadores infijos tienen precedencias, que son arbitrarias e indeseables. Por
ejemplo, sabemos que a x b + c significa (a x b) + c y no a x (b + c), porque la
multiplicacin ha sido definida arbitrariamente como precedente sobre la suma. La notacin
polaca inversa elimina esta incomodidad.
Existen diversos algoritmos con los que se convierten frmulas escritas mediante
notacin infija en otras escritas en polaca inversa. El que se da ms adelante es una
adaptacin de una idea debida a E. W. Dijkstra. Supone que una frmula est compuesta de
los siguientes smbolos: variables, los operadores binarios (de dos operandos) +, , * y /
los parntesis abierto y cerrado. Para marcar los limites de una frmula, insertaremos el
smbolo despus del ltimo smbolo y antes del primero.
La figura 5-28 muestra un trayecto de ferrocarril desde Valencia a Madrid, con una
bifurcacin que desva hacia Granada. Cada smbolo de la frmula se representa por un
vagn de ferrocarril. El tren se mueve hacia el oeste (a la izquierda). Cada vez que un
vagn llega a la bifurcacin, debe parar y preguntar si debe ir a Madrid directamente o
desviarse a Granada. Los vagones que contienen variables siempre van directamente a
Madrid y nunca a Granada. Los vagones que contienen otros smbolos deben investigar el
contenido del vagn ms cercano situado sobre la via que lleva a Granada antes de entrar
en la bifurcacin.

La figura 5-29 muestra lo que pasa, segn el contenido del vagn ms cercano en la
va de Granada y del de la bifurcacin. El primer siempre va a Granada. Los nmeros
indican las situaciones siguientes:

155

Vagn que ha llegado ms recientemente a la va de Granada

+
X
/
(

4
2
2
2
2
5

Vagn en la bifurcacin
+
x
/
(
1
1 1 1 1
2
2 1 1 1
2
2 1 1 1
2
2 2 2 1
2
2 2 2 1
1
1 1 1 1

)
5
2
2
2
2
3

Fig. 5-29. Tabla de decisin utilizada por el algoritmo


de conversin de infija en polaca invesa.

1. El vagn que est en la bifurcacin se dirige hacia Granada.


2. El vagn que ha entrado ms recientemente en la va de Granada da
la vuelta y va a Madrid.
3. El vagn de la bifurcacin y el que ha entrado ms recientemente en
la va de Granada son "secuestrados" y desaparecen (es decir, se eliminan).
4. Fin. Los smbolos que estn en Madrid representan la frmula en
notacin polaca inversa cuando se leen de izquierda a derecha.
5. Fin. Se ha producido un error. La frmula original no estaba balanceada correctamente.
Despus de producirse cada accin, se hace una nueva comparacin entre el vagn de
la bifurcacin, que puede se el mismo de la comparacin previa o el siguiente, y el vagn
que est en este momento al ltimo en la va de Granada. El proceso contina hasta que se
alcanza el punto 4. Obsrvese que la va de Granada se usa como una pila, considerando el
encaminamiento de un vagn hacia Granada como una operacin de apilar y la recuperacin
de un vagn de la va de Granada para llevarlo a Madrid como una operacin de desapilar.
Ntese que el orden de las variables es el mismo en las dos notaciones. Sin embargo,
el orden de los operadores es diferente. Los operadores en la notacin polaca inversa
aparecen, de hecho, en el orden en que sern ejecutados durante la evaluacin de la
expresin. La figura 5-30 da ejemplos de frmulas en notacin infija y sus equivalentes en
polaca inversa.
Infija
A+BxC
AxB+C
AxB+CxD
(A + B) / (C - D)
AxB/C
((A + B) x C + D) / (E + F + G)

Polaca inversa
ABC x +
AB x C +
AB x CD x +
AB + CD - /
AB x C /
AB + C x D + EF + G + /

FIG. 5-30. Ejemplo de frmula infija y sus equivalentes en polaca inversa.

156

Evaluacin de frmulas en la notacin polaca inversa


El siguiente algoritmo evala una frmula en notacin polaca inversa.

Algoritmo
1. Examinar cada smbolo que en la frmula est en notacin polaca inversa,
comenzando por el extremo de la izquierda hasta llegar a un operador.
2. Escribir en un trozo de papel el operador y los dos operandos situados
inmediatamente a su izquierda.
3. Borrar el operador y los operandos en la frmula, dejando un hueco.
4. Realizar la operacin con los operandos y escribe el resultado en el hueco.
5. Si la nueva frmula consta de un solo valor, ste es la respuesta y el algoritmo ha
terminado; en caso contrario, se vuelve al punto 1.
La figura 5-31 describe la evaluacin de una frmula en polaca inversa. Ntese que
el orden de los operadores es el orden en que se usan realmente.

La notacin polaca inversa es ideal para evaluar frmulas en una computadora con
una pila. La frmula consta de n smbolos, siendo cada uno de ellos o una variable (es decir,
algo con un valor) o un operador. El algoritmo es como sigue.

Algoritmo
1. Poner k a 1.
2. Examinar el smbolo k-simo. Si es una variante, se apila. Si es un
operador, desapilar los dos datos que estn en su cima, realizar la
operacin y apilar el resultado de nuevo.
3. Si k = n, el algoritmo se da por terminado y la solucin est en la
pila. Si no fuera as, aade 1 a k y realiza el paso 2.
La figura 5-33 muestra la evaluacin de la misma frmula que en la figura 5-32, si
bien en la 5-33 se utiliza una pila. Obsrvese que el nmero que est en la cima de la pila
es el operando de la derecha, no el de la izquierda.

157

Este punto es importante para la resta y la divisin, ya que el orden de los operandos
es significativo (a diferencia de la suma o la multiplicacin).
Una computadora organizada en torno a una pila ofrece diversas ventajas en
comparacin con las mquinas de registros mltiples, como los de los ejemplos:

1. Las instrucciones son cortas ya que muchas de ellas no tienen direccin.


2. Las frmulas son fciles de evaluar.
3. No hay necesidad de utilizar algoritmos complicados para optimizar la
utilizacin de los registros.

Ninguna de las CPU de Intel tiene direccionamiento de pila, pero si instrucciones


especiales (PUSH y POP) para colocar Hems en la pila (apilar) y para retirarlas de ella
(desapilar). En contraste todas las pastillas 680x0 tienen direccionamiento de pila por medio
de auto-indexacin. En la modalidad de decremento predeterminado, primero se
decrementa el (registro) apuntador de pila y luego el registro se utiliza como apuntador. En
la modalidad de incremento posterior, primero se realiza el direccionamiento y despus se
incrementa el registro.

158

Direccin

Palabra de 16 bit
Fuente

Destino

CDIGO DE MODO DE REGISTRO DE MODO DEL


OPERACIN LA FUENTE
LA FUENTE
DESTINO
4
3
3
3
N+2
(Primer palabra siguiente)
16
N+4
(Segunda palabra siguiente)
16
(a)
N

REGISTRO
DEL DESTINO
3

Modo
Nombre
0
Direccionamiento de registro
1
Indirecto sobre registro
2
Auto-incrementado

Cmo se localiza el operando


El operando est en R
R contiene un apuntado al operando
Se extrae el contenido de R y se utiliza como apuntador al operando.
Despus de este paso, pero antes de ejecutar la instruccin, R se
incrementa en 1 (instrucciones de byte) o en 2 (instrucciones de parabra)
3
Se extrae de R la direccin de una palabra que contiene el apuntado al
Auto-incrementado indirecto operando. Despus se incrementa R en 1 o 2, antes de ejecutar la
instruccin.
4
Primero se decrementa R en 1 o 2. Despus el nuevo valor de R se
Auto-incrementado
utiliza como un apuntador al operando.
5
Primero se decrementa R en 1 o 2. Despus el nuevo valor de R se
Auto-incrementado inderecto utiliza como la direccin de memoria que contiene un apuntador al
operando.
6
Indexado
El operando est en al direccin igual a la suma del contenido de R
(registro de ndice) y el desplazamiento de 17 bits en complemento a 2
contenido en la siguiente palabra. En los modos 6 y 7 el contador de
programa (R7) se incrementa en 2 inmediatamente despus de extraer la
siguiente palabra
7
Direccionamiento indexado + La posicin de memoria que contiene un apuntador al operando se
indirecto
obtiene sumando el contenido de R y la siguiente palabra. En los modos
6 y 7 el contador se programa (R7) se incrementa en 2 inmediatamente
despus de extraer la siguiente palabra.
(b)
Fig. 5-33. a) Formato de una instruccin de la PDP-11 de dos direcciones. b) Descripcin de los modos de
direccionamiento de la PDP-11. R es el registro especificado con el modo.
Si la pila crece de las direcciones altas a las bajas y el apuntador de pila apunta
siempre a la parte superior (es decir, a la direccin ms baja de memoria que contiene un
elemento de la pila), se puede usar la modalidad de decremento predeterminado para apilar
y la de incremento posterior para desapilar. Por el contrario,'si la pila crece de las
direcciones bajas a las altas y, por convencin el apuntador de pila apunta a la primera
celda vaca de la pila, en lugar de hacerlo a la ltima ocupada, se puede usar entonces el
incremento posterior para apilar y el decremento predeterminado para desapilar. Cul de
los sistemas a utilizar depende de las preferencias y de los antecedentes de uso.

159

Ejemplos de direccionamiento
En las secciones anteriores se estudiaron varios modos de direccionamiento; el
inmediato, el directo, el indirecto, el indexado, etc. Sin embargo, queda an la cuestin de
cmo el hardware o el intrprete de nivel uno reconocen que el direccionamiento pertenece
a alguno de los modos mencionados. Una solucin consiste en tener cdigo de operacin
por separado para cada mtodo; esto es, diferentes cdigos para ADD INMEDIATO, ADD
DIRECTO, ADD INDIRECTO, etc. Otra forma es hacer que el modo forme parte de la
direccin. Cada instruccin pudiera contener unos cuantos bits por direccin para especificar
el modo de direccionamiento deseado.

Direccionamiento en la PDP-11
Las direcciones en la PDP-11 se especifican por medio de un campo de 6 bits, como se
puede apreciar en la figura 5-33(a). Las instrucciones de una direccin tienen uno de
estos campos, mientras que las de dos direcciones tienen dos, con el mismo cdigo en cada
campo. Los campos de 6 bits constan de 3 bits para el modo de direccionamiento y 3 bits
para el nmero de registro. En la figura 5-33(b) se muestra el significado de los modos.
En la PDP-11, el registro 6 corresponde al apuntador de pila y el registro 7 al contador de
programa; este ltimo se incrementa en 2 inmediatamente despus de extraer la palabra de
una instruccin (antes de ejecutar la instruccin). Se debe tener presente esta propiedad al
examinar algunos de los modos de direccionamiento.
Todas las instrucciones de la PDP-11 tienen 16 bits realmente, pero, en algunos casos,
utilizan una o dos palabras adicionales situadas a continuacin y que pueden considerarse
como parte de ellas. Los modos de direccionamiento 6 y 7 requieren una constante de 16
bits para indexar. Adems, si se especifica uno de los modos 2 o 3 con el registro 7 (el
contador de programa), se observar la siguiente secuencia de pasos.
En primer lugar, se extrae la instruccin y se incrementa el registro 7 en dos (una
palabra consta de 2 bytes). Luego el registro 7 se usa como apuntador (puntero) del dato
(modo 2) o de la direccin del dato (modo 3). En ambos casos la palabra sealada por R7
es la que sigue a la instruccin. Una vez que se ha extrado la palabra, tiene lugar el autoincremento del registro 7, incrementndose en 2. El direccionamiento con auto-incremento
aplicado al contador de programa es un truco que permite utilizar como dato la palabra que
est a continuacin de la instruccin. En el modo 2 este dato es el operando, lo que nos da
un direccionamiento inmediato. En el modo 3 es la direccin del operando, obtenindose un
direccionamiento directo. Si tanto la fuente como el destino requieren una palabra adicional,
la primera es para la fuente.

TIPOS DE INSTRUCCIONES
Las instrucciones del nivel de mquina convencional se pueden dividir
aproximadamente en dos grupos: instrucciones de propsito general e instrucciones de
propsito especial. Las primeras tienen una aplicacin muy amplia. Por ejemplo, la
posibilidad de mover datos a travs de la mquina seguramente se necesita en casi todas
las aplicaciones. Las instrucciones de propsito especial tienen aplicaciones mucho ms
restringidas. La instruccin MOVEP de la 68000 almacena en memoria el contenido de un
registro D en bytes alternos, con un byte sin utilizar entre los bytes de datos. Hay pocas
aplicaciones en las que es realmente til esta instruccin, y ningn compilador la generar
jams (se incluy para facilitar la comunicacin con los perifricos ms antiguos de 8 bits).
En las siguientes secciones examinaremos los grupos ms importantes de instrucciones de
propsito general.

160

Instrucciones de movimiento de datos


La operacin de la copia de datos de un lugar a otro es la ms fundamental de todas.
Por copia entendemos la creacin de un nuevo objeto con la misma secuencia de bits que el
original. Este uso de la palabra movimiento es algo diferente al que se le asigna en
espaol. Cuando decimos que Manuel Mangosta se ha movido de Madrid a Barcelona, no
queremos decir que se cre una copia idntica del seor Mangosta en Barcelona y que el
original est todava en Madrid. Cuando decimos que el contenido de la posicin de memoria
2000 se ha movido a algn registro, siempre queremos decir que se ha creado ah una
copia idntica y que el original est todava sin alterar en la posicin 2000. Las instrucciones
de movimiento de datos se podran haber llamado ms bien instrucciones de duplicacin,
pero el trmino movimiento de datos ya est establecido. Los datos se almacenan en
diversos lugares, pero es diferente la forma en que se accede a las palabras. Tres lugares
comunes son una palabra de memoria determinada, un registro o la pila. La pila puede
estar en unos registros especiales o en memoria, pero la forma en que se accede a ella es
diferente del acceso ordinario a memoria. Un acceso a memoria requiere una direccin,
mientras que para meter o sacar un dato de la pila no hay que hacer un direccionamiento
explcito. Las instrucciones de movimiento de datos requieren la especificacin explicita o
implcita de la fuente de la informacin (es decir, el original) y el destino (donde se ha de
colocar la copia).
Las instrucciones de movimiento de datos deben, de algn modo, indicar la cantidad
de datos que va a moverse. Existen instrucciones para mover cantidades de datos de
apenas un bit o hasta de la memoria entera. En mquinas de palabra de longitud fija el
nmero de palabras que deben moverse generalmente lo especifica la instruccin; por
ejemplo, puede haber instrucciones distintas para mover una palabra y para mover media
palabra. Las mquinas de palabra de longitud variable a menudo tienen instrucciones que
especifican solamente la direccin de la fuente y del destino pero no la cantidad. El
movimiento contina hasta que se encuentra una marca de fin de datos en los datos
mismos.
Los procesadores 680 x O tienen una instruccin MOVE para fines generales, con dos
operndoos arbitrarios, como se puede ver en la figura 5-23. Esta instruccin puede mover
datos entre los registros, la memoria o la pila a cualquier lado. Las CPU de Intel tienen
instrucciones de movimiento mucho ms limitadas, pero existen muchas de ellas, de
manera que tambin es posible mover cualquier cosa a cualquier lado.

Operaciones binarias
Las operaciones binarias son las que combinan dos operndoos para obtener un
resultado. En la prctica, todas las mquinas de nivel 2 tienen una instruccin para realizar
la suma y la resta de enteros. Excepto el micro de 8 bits, tambin es corriente que tengan
multiplicacin y divisin de enteros. Se supone que no se necesita explicar por qu las
computadoras tienen instrucciones aritmticas.
Otro grupo de operaciones binarias incluye las instrucciones booleanas. Aunque haya
16 funciones de dos variables, pocas mquinas, si es que hay alguna, tienen instrucciones
para las 16. Por ejemplo, es innecesaria una funcin que calcule el valor CIERTO
independientemente de los argumentos. Si se necesita en alguna parte de la mquina la
secuencia de bits que representa CIERTO, se puede simplemente moverla hacia all, en
lugar de calcularla. Argumentos similares muestran que la instruccin para realizar f(P, Q)
= P debe ser bastante intil.
Tres instrucciones presentes en muchas mquinas son Y, O y O EXCLUSIVO. En
mquinas de longitud de palabra fija, la funcin Y calcula bit por bit el Y booleano de dos
argumentos de una palabra, siendo el resultado tambin una palabra. A veces existen
asimismo instrucciones para medias palabras, dobles palabras, etc. Cabe hacer comentarios
similares respecto de las dems instrucciones booleanas.
Un uso muy importante de la funcin Y es la extraccin de bits de las palabras.
Considrese, por ejemplo, una mquina de palabra de 32 bits en la que se almacenan
cuatro caracteres de 8 bits por palabra. Supongamos que se necesita separar el segundo

161

carcter de los otros tres para imprimirlo; es decir es necesaria crear una palabra que
contenga el carcter en los 8 bits de la derecha o, como suele decirse, justificado a la
derecha con ceros en los 24 bits de la izquierda.
Para extraer el carcter, se hace un Y entre la palabra que lo contiene y una constante
denominada mscara. El resultado de esta operacin es el cambio de todos los bits no
deseados por ceros (es decir, se enmascaran), como se muestra abajo.

10110111 10111100 11011011 10001011 A


00000000 11111111 00000000 00000000 B
(mscara)
00000000 10111100 00000000 00000000 A Y B
El resultado deber desplazarse ahora 16 bits a la derecha para aislar el carcter en la
parte derecha de la palabra.
Un uso muy importante del O es el empaquetamiento de bits en una palabra, siendo el
empaquetamiento lo contrario de la extraccin. Para cambiar los 8 bits de la derecha de una
palabra de 32 bits sin alterar los 24 bits restantes, primero se enmascaran los 8 bits no
deseados y luego se hace un O con el nuevo carcter, como se muestra abajo.

10110111 10111100 11011011 10001011 A


11111111 11111111 11111111 00000000 B
(mscara)
10110111 10111100 11011011 00000000 A Y B
00000000 00000000 00000000 01010111 C
10110111 10111100 11011011 01010111 (A Y B) 0 C
La operacin Y tiende a eliminar unos, ya que nunca hay ms unos en el resultado que
en los operndoos. La operacin O tiende a insertar unos, ya que siempre hay al menos
tantos como tenga el operando que ms tenga. La operacin O es, por otro lado, simtrica,
tendiendo, en media, a no insertar ni eliminar unos. Esta simetra con respecto a los unos y
los ceros es til en varias ocasiones; por ejemplo, para generar nmeros aleatorios.
Las primeras computadoras realizaban la aritmtica de punto flotante llamando a
procedimientos preprogramados, pero hoy da hay muchas computado- ras, especialmente
las concebidas para dedicarse a trabajo cientfico, que tienen instrucciones de punto flotante
al nivel 2 por razones de velocidad. Algunas mquinas tienen nmeros en punto flotante de
varias longitudes, los ms cortos para obtener mayor velocidad y los ms largos para
cuando se necesitan muchos dgitos de precisin. Los nmeros en punto flotante se
comentan en el Apndice B.

Operaciones unarias
Las operaciones unarias tienen un operando y producen un resultado. Como tienen
una direccin menos que especificar, estas instrucciones son a veces ms cortas que las
binarias.
Las instrucciones para desplazar o rotar el contenido de una palabra o de un byte son
bastante tiles y, a menudo, se suministran en varias modalidades. Los desplazamientos
son operaciones en que los bits se mueven a la izquierda o a la derecha, perdindose los
que se salen de la palabra. Las rotaciones son desplazamientos en los que los bits que se
salen por un lado aparecen en el otro. La diferencia entre el desplazamiento y la rotacin se
ilustra abajo.

00000000 00000000 00000000 01110011

162

00000000 00000000 00000000 00011100


11000000 00000000 00000000 00011100

A desplazado a la derecha 2 bits


A rotado a la derecha 2 bits

Tanto los desplazamientos a la izquierda como los que se hacen a la derecha son
tiles. Si una palabra de n bits se rota k bits a la izquierda, el resultado es el mismo que si
se hubiera rotado m k bits a la derecha.
Los desplazamientos a la derecha se hacen a menudo con extensin del signo. Esto
significa que las posiciones que quedan libres por el lado izquierdo de la palabra se llenan
con el bit de signo original, 0 o 1. Parece como si el bit de signo se estirara hacia la
derecha. Entre otras cosas, ello significa que un nmero negativo permanecer negativo. La
situacin se ilustra abajo.

11111111 11111111 11111111 11110000


00111111 11111111 11111111 11111100
11111111 11111111 11111111 11111100

A
A desplazado sin extensin del signo
A desplazado con extensin del signo

Un uso importante del desplazamiento es la multiplicacin por potencias de 2 y la


divisin entre ellas. Si un entero positivo se desplaza k bits a la izquierda, el resultado es el
nmero original multiplicado por 2 k, siempre que no haya desbordamiento. Si un entero
positivo se desplaza k bits a la derecha, el resultado es el nmero original dividido entre 2k.
El desplazamiento puede acelerar ciertas operaciones aritmticas. Considrese, por
ejemplo, el clculo de 18 X n, en donde n es algn entero positivo.
18 x n = 16 x n + 2 X n. 16 X n se puede obtener desplazando una copia de n cuatro
bits a la izquierda. 2 X n puede obtenerse desplazando n un bit a la izquierda. La suma de
estos dos nmeros es 18 x n. La multiplicacin se ha realizado con un movimiento, dos
desplazamientos y una suma, lo que muchas veces es ms rpido que una multiplicacin.
El desplazamiento de nmeros negativos, incluso con extensin de signo, da
resultados algo diferentes. Por ejemplo, consideremos el nmero 1 en complemento a
uno. Desplazado 1 bit a la izquierda da 3. Otro desplazamiento de 1 bit da 7:

11111111 11111111 11111111 11111110


11111111 11111111 11111111 11111100
11111111 11111111 11111111 11111000

1 en complemento a uno
1 desplazado 1 bit a la izquierda = 3
1 desplazado 2 bits a la izquierda = 7

EL desplazamiento a la izquierda en complemento a 1 no multiplica por 2. Sin


embargo, el desplazamiento a la derecha simula correctamente la divisin.
Considrese ahora la representacin en complemento a 2 de 1. El desplazamiento a
la derecha de seis bits con extensin de signo da 1, mientras que la parte entera de
1/64 debera ser 0:

11111111 11111111 11111111 11111111


11111111 11111111 11111111 11111111

1 en complemento a 2
1 desplazado 6 bits a la derecha = 1

Sin embargo, el desplazamiento a la izquierda simula la multiplicacin por 2.


Las
operaciones
de
rotacin
son
tiles
para
el
empaquetamiento
y
desempaquetamiento de secuencias de bits en una palabra. Si se desean examinar todos
los bits de una palabra, la rotacin de sta un bit cada vez pone cada bit en el signo, donde
se le puede examinar fcilmente. Despus de examinar todos los bits de la palabra, sta
vuelve a su valor original.
Todas las mquinas de nuestros ejemplos tienen una amplia variedad de instrucciones
de desplazamiento / rotacin, en ambas direcciones. Algunas comprenden al bit de acarreo
y otras no. Sin embargo, los compiladores prcticamente nunca generan ninguna de ellas,
con excepcin del desplazamiento a la izquierda, como una forma optimizada de multiplicar

163

por una potencia de dos.


Ciertas operaciones binarias ocurren con tal frecuencia con determinados operndoos,
que muchas mquinas de nivel 2 tienen instrucciones unarias que las realizan rpidamente.
Mover un cero a una palabra de memoria o a un registro es extremadamente corriente
cuando se comienza un clculo. El movimiento de un cero es, naturalmente, un caso
particular de las instrucciones generales de mover. Por eficiencia, se suele disponer de una
operacin de BORRAR con una sola direccin, la de la posicin a borrar (es decir, a poner a
cero).
Tambin se usa muchas veces la suma de un l a un registro o a una posicin de
memoria para contar. Una forma unaria de la instruccin de sumar es la operacin de
incrementar, que aade 1. La operacin de negar es otro ejemplo. La operacin de negar X
es realmente hacer la resta binaria 0 - X; pero tambin se suministra a veces como una
instruccin distinta.

Comparaciones y Saltos Condicionales


Casi todos los programas deben tener la capacidad de examinar datos y despus
alterar el flujo de control en funcin de los resultados. Un ejemplo simple es la funcin raz
cuadrada. Si el argumento es negativo, el procedimiento da un mensaje de error; en caso
contrario realiza la raz cuadrada. Dicha funcin de los resultados. Un ejemplo simple es la
funcin raz cuadrada. Si el argumento es negativo, el procedimiento da un mensaje de
error; en caso contrario realiza la raz cuadrada. Dicha funcin tiene que examinar el
argumento y luego bifurcar, dependiendo de s es negativo o no.
Un mtodo corriente de hacerlo es proporcionar instrucciones de salto condicional (a
menudo llamadas de bifurcacin condicional) que comprueben alguna condicin y salten a
una direccin de memoria particular si la condicin se cumple. Algunas veces se puede
poner algn bit de la instruccin a 1 o 0 para indicar si el salto debe ocurrir cuando la
condicin se cumple o no, respectivamente.
La condicin ms corriente a verificar es si un bit particular de la mquina es 0 o no.
Si una instruccin comprueba el bit de signo de un nmero en complemento a 2 y bifurca a
LUGAR si es 1, se ejecutarn las instrucciones que comienzan en LUGAR si el nmero fue
negativo o las siguientes al salto condicional, si fue 0 o positivo. La misma comprobacin
hecha en complemento a 1 bifurcar a LUGAR siempre que el nmero comprobado sea
menor o igual que 1 y nunca saltar a LUGAR si dicho nmero es mayor o igual que 1. Si
el nmero es 0, el salto tendr o no lugar segn sea + 0 o 0. Esto es sin duda incmodo,
porque matemticamente + 0 = 0, y ste es, en realidad, uno de los argumentos ms
fuertes en contra de la aritmtica de complemento a 1 y a favor de la de complemento a 2.
Muchas mquinas tienen bits que indican condiciones especficas. Por ejemplo, puede
haber un bit de desbordamiento que se ponga a 1 siempre que una operacin aritmtica d
un resultado incorrecto. Al comprobar este bit se detecta si hubo desbordamiento en la
operacin aritmtica anterior y, si lo hubo, se puede hacer un salto a una rutina de error. La
68000 tiene incluso una instruccin especial corta, TRAPV, que hace un desvo si el bit de
desbordamiento est activo.
De modo similar, algunos procesadores tiene un bit de acarreo que se pone a 1
cuando tiene lugar un acarreo de bit de la izquierda (por ejemplo, s se suman dos nmeros
negativos). Un acarreo del bit de la izquierda es completamente normal y no debe
confundirse con un desbordamiento. La comprobacin del bit de acarreo se necesita en la
aritmtica de precisin mltiple.
Algunas mquinas tienen una instruccin para comprobar el bit de la derecha de una
palabra. Ello permite al programa comprobar si un nmero (positivo) es par o impar con
una sola instruccin.
La comprobacin de cero es muy importante para iteraciones y para muchos otros
fines. Si todas las instrucciones de salto condicional examinaran solamente un bit, la
comprobacin de s una palabra particular est en cero, necesitara de una comprobacin
distinta de cada bit para asegurar que ninguno est a 1. Para evitar esta situacin, muchas
mquinas tienen una instruccin por la que examinan una palabra y saltan si es cero.
Naturalmente, esta solucin lo nico que hace es pasarle la pelota al nivel l. En la prctica,

164

normalmente el hardware tiene una compuerta O a cuyas entradas son todos los bits de un
registro y cuya salida dice si dicho registro contiene algn bit a 1.
La comparacin de dos palabras o caracteres para ver si son iguales y, si no lo son,
ver cul es mayor, tambin es importante, por ejemplo, en ordenamientos. Para realizar
esta comprobacin, se necesitan tres direcciones, dos para los datos y otra para la direccin
a la que se ha de saltar si la condicin es verdadera. Las computadoras cuyo formato de
instruccin permiten tres direcciones por instruccin no tienen ningn problema, pero
aquellas que no las permiten s lo tienen y deben hacer algo para evitarlo.
Una solucin comn consiste en dotarlas de una instruccin que compare ambos datos
y ajuste uno o ms bits de condicin para registrar el resultado. Una instruccin posterior
puede comprobar los bits de condicin y saltar si los dos valores comparados eran iguales,
distintos, si el primero era mayor, etc. Las mquinas de ejemplo usan esta aproximacin.
Se presentan algunas cuestiones delicadas al comparar dos nmeros. Primero, en
mquinas complemento a 1, +0 y 0 son diferentes. Por ejemplo, en una mquina de 32
bits.

00000000 00000000 00000000 00000000 + 0 en complemento


a1
11111111 11111111 11111111 11111111 - 0 en complemento
a1
Los diseadores tienen que decidir si +0 y 0 son iguales y, si no lo son, cul es
mayor. Sin importar la decisin que tomen, hay argumentos convincentes para afirmar que
la decisin es errnea. Si hacen +0= 0, entonces el hecho de que una comparacin
produzca igual no significa que las secuencias de bits de los datos comparados sean las
mismas. Considrese una mquina con palabra de 32 bits en la que se almacenan cuatro
caracteres de 8 bits. Si se almacenaran cuatro caracteres con cdigo 0 en una palabra, sta
contendr 32 ceros. Si se almacenaran cuatro caracteres con cdigo 255 en otra palabra,
sta tendr 32 unos. Si al comparar estas dos palabras resultaran iguales porque +0 = 0,
un programa de proceso de textos podr llegar a la conclusin errnea de que las dos
palabras contienen los mismos cuatro caracteres.
Por otro lado, si el hardware tratara 0 y +0 como distintos, entonces el resultado de
comparar la suma de 1 y +1 con +0 podra dar que no son iguales, ya que 1 sumando a
+1 puede dar -0 como resultado. No es necesario decir que esta situacin es totalmente
indeseable. Las mquinas de complemento a 2, que incluyen los ejemplos, no tienen
problemas con +0 y 0, pero las de complemento a 1 s los tienen. La consecuencia es que
las mquinas con aritmtica en complemento a 1 estn desapareciendo lentamente.
Otro punto delicado en relacin con la comparacin de nmeros es la decisin por la
que los nmeros deben considerarse con signo o sin l. Hay dos formas de ordenar de
menor a mayor los ocho nmeros binarios de tres bits.

Sin
signo
000

Con signo

001
010
011
100
101
110
111

101
110
111
000
001
010
011

100

(el
menor)

(el
mayor)

165

La columna de la izquierda muestra los enteros positivos del cero al siete en orden
creciente. La de la derecha muestra los enteros con signo desde 4 a +3 en complemento a
2. La respuesta a la pregunta Es 011 mayor que 100? Depende de que los nmeros se
consideren con o sin signo. La mayora de las mquinas tienen instrucciones para las dos
formas de ordenar.
Las mquinas que tienen menos de tres direcciones por instruccin a veces tratan las
comparaciones con una instruccin que se salta u omite la siguiente instruccin si la
condicin se cumple. La instruccin que se omite ser con frecuencia una de salto. En
algunas mquinas pueden saltarse varias instrucciones en vez de una sola; el nmero de las
que se van a saltar viene especificado en la propia instruccin. Por lo general, este es un
nmero entre 128 y +127, de modo que cabe en un byte. El 68000 tiene varias
instrucciones de este tipo.
El salto incondicional es un caso especial del salto condicional en el que la condicin
siempre se cumple.

Instrucciones de llamada a procedimiento


Un procedimiento es un grupo de instrucciones que realizan alguna tarea y al que se le
puede involucrar (llamar) desde diversos puntos del programa. A veces se usa el trmino
subrutina en lugar de procedimiento, especialmente si se trata de programas en lenguaje
ensamblador. Cuando un procedimiento termina su tarea, debe retornar a la sentencia que
sigue a la de llamada. Por tanto, se debe transmitir la direccin de retorno al procedimiento
para que sepa dnde retornar.
Hay tres lugares donde se pone la direccin de retorno: la memoria, un registro o la
pila. La peor solucin es ponerla en una nica posicin fija de memoria. Con este mtodo, si
el procedimiento llamara a otro, la segunda llamada hara que se perdiera la direccin de
retorno de la primera.
Una ligera mejora consiste en que la instruccin de llamada a procedimiento almacene
la direccin de retorno en la primera palabra del procedimiento, estando la primera
instruccin ejecutable en la segunda palabra. El procedimiento podra retornar con un salto
indirecto a la primera palabra o, si el hardware pone el cdigo de operacin de la instruccin
de salto junto a la direccin de retorno, saltando directamente a ella. El procedimiento
puede llamar a otros, ya que cada uno tiene espacio para una direccin de retorno. Si el
procedimiento se llamara a s mismo, este esquema fallara, porque la segunda direccin de
retorno destruira a la primera. La habilidad de que un procedimiento se pueda llamar a s
mismo, llamada recursin, reviste extrema importancia tanto para los tericos como para
los programadores que hacen el trabajo prctico. Es ms, si un procedimiento A llama a B,
ste llama a C y C llama de nuevo a A (recursin indirecta), tampoco funciona este
esquema.
Una mejora consistir en que la instruccin de llamada a procedimiento ponga la
direccin de retorno en un registro, dejando al procedimiento la responsabilidad de
almacenarla en un lugar seguro. Si el procedimiento es recursivo, deber poner la direccin
de retorno en un lugar diferente cada vez que se la llame.
Lo mejor que puede hacer la instruccin de llamada a procedimiento con la direccin
de retorno es metera en una pila. Cuando el procedimiento haya terminado, sacar la
direccin de retorno de la pila y la meter en un contador de programa. Si se dispone de
esta forma de llamada a procedimiento, la recursin no plantear problemas especiales: las
direcciones de retorno se salvarn de manera que se evite la destruccin de las anteriores.
Todas las mquinas de ejemplo utilizan este mtodo.

166

Control de iteraciones
Es frecuente que se necesite ejecutar un grupo de instrucciones un nmero fijo de
veces y, por ello, algunas mquinas tienen instrucciones para facilitarlo.
Todos los mtodos requieren de un contador que se incrementa (o decrementa) en
alguna constante cada vez que se pasa por la iteracin. Si se verifica cierta condicin, la
iteracin termina.
Un mtodo pone un valor inicial en un contador y luego pasa a ejecutar el cdigo de la
iteracin. La ltima instruccin de la iteracin actualiza el contador y, si an no se ha
satisfecho la condicin de terminacin, salta a la primera del lazo. En caso contrario, la
iteracin termina y se pasa ejecutar la siguiente instruccin. Esta forma de hacer iteraciones
se caracteriza por hacer la comprobacin al final, como se muestra en la figura 5-40(a).
Las iteraciones con comprobacin al final tienen la propiedad de ejecutarse siempre
una vez al menos, aunque n sea menor o igual que 0. Por ejemplo, pongamos un programa
que mantiene los registros del personal de una empresa. En cierto punto el programa est
leyendo informacin de tarjetas acerca de determinado empleado. Lee en n el nmero de
hijos que tiene dicho empleado y ejecuta una iteracin n veces, una por hijo, leyendo su
nombre, sexo y fecha de nacimiento, para que la empresa pueda mandarle un regalo el da
de su cumpleaos (es una atencin de la empresa). Si el empleado no tiene hijos, n ser 0
pero la iteracin se ejecutar una vez, mandando regalos y dando resultados errneos.
La figura 5-40(b) muestra otra forma de realizar la comprobacin, que funciona
satisfactoriamente aunque n sea menor o igual que 0. Obsrvese que la comprobacin es
diferente en ambos casos, de modo que los diseadores han de elegir un mtodo o el otro.
Considrese el cdigo que debera producirse con la sentencia Pascal.

167

for i : = 1 to n do bigin ... end


i: = l;
i: =1;
1: {primera sentencia}
1: if i > n then goto 2;
{segunda sentencia}
{primera sentencia}
.
{segunda sentencia}
.
.
.
.
{ltima sentencia}
.
i:i = 1;
{ltima sentencia}
if i < = n then goto 1;
i: =i+1;
goto 1;
2: {primera sentencia despus
2: {primera sentencia despus de
de la iteracin}
la iteracin}
(a)
(b)
Fig. 5-40. a) Iteracin con comprobacin al final. b) Iteracin con comprobacin al principio.
Si el compilador no tuviera ninguna informacin sobre n, seguira la aproximacin de
la figura 5-37(b) para tratar correctamente el caso de n < 0. Si, en cambio, pudiera
determinar que n >0, por ejemplo, viendo dnde se asigna un valor a n, podra usar un
cdigo como el mejor de la figura 5-40(a). La primera normalizacin del lenguaje
FORTRAN especificaba que todas las iteraciones se ejecutaran al menos una vez, para
permitir que siempre se generara el cdigo ms eficiente de la figura 5-40(a). En 1977 se
corrigi este defecto cuando incluso la comunidad de usuarios del FORTRAN empez a darse
cuenta de que no era una buena idea que la sentencia de iteracin tuviera una semntica
extica, aunque ahorrara una instruccin de salto por iteracin.
Todas las CPU de Intel realizan iteraciones en un nmero fijo de veces utilizando la
instruccin LOOP, la cual decrementa en uno los registros CX / ECX y salta a una etiqueta
dada, si el resultado no es igual a cero. En caso de ser cero, la ejecucin contina con la
siguiente instruccin.
Las 680 x 0 tienen una instruccin en cierto modo ms general, que primero verifica
los cdigos de condicin para una condicin dada, saliendo de la iteracin si sta se cumple.
Si la condicin es falsa, el registro D se decrementa. Si el resultado es 0 o ms, la iteracin
se repite; en caso contrario se da por termina- da la iteracin y se ejecuta la instruccin que
le sigue.

Entrada / salida
Ningn otro grupo de instrucciones presenta tanta variacin de mquina a mquina
como el de las instrucciones de entrada / salida. En la actualidad, se encuentran en uso
cuatro diferentes esquemas de E / S. Estos son:

1. E
2. E
3. E
4. E

/
/
/
/

S
S
S
S

programada.
manejada por interrupciones.
de Acceso Directo a Memoria (DMA).
usando canales de datos.

A continuacin se describir cada uno de estos esquemas.


El mtodo ms sencillo posible es E / S programada, el cual se usa en algunos
microprocesadores de orden inferior. Estos, tienen una sola instruccin de entrada y una
sola de salida. Cada una de estas instrucciones selecciona uno de los dispositivos de E / S y
se transfiere un solo carcter entre un registro fijo del procesador y el dispositivo
seleccionado. El procesador debe ejecutar una instruccin explcita para cada uno de los
caracteres que se leen o escriben.
168

Como un ejemplo sencillo de este mtodo, considrese una terminal con cuatro
registros de 1 byte, como se muestra en la figura 5-41. Dos de los registros se usan para
entrada, estado y datos; y los otros dos para salida, as como tambin estado y datos. Cada
registro tiene una direccin nica. Si se utiliza E / S mapeada en memorias, los cuatro
registros forman parte del espacio de direcciones y se pueden leer o escribir por medio de
instrucciones ordinarias. En caso contrario, se proporcionan instrucciones especiales de E /
S, llamadas IN y OUT, para leer y escribir los registros. En ambos casos, las operaciones de
E / S se realizan transfiriendo datos e informacin del estado entre la CPU y estos registros.

El registro de estado del teclado tiene 2 bits que se utilizan y 6 que no se usan. El bit
ms hacia la izquierda (7) adquiere del hardware el valor de l siempre que llega un carcter.
Si previamente el software fij el bit 6 en 1, se genera una interrupcin; en caso contrario,
esto no ocurre (las interrupciones se abordarn en breve). Cuando se usa E / S programada
para recibir informacin, la CPU entra en una iteracin, leyendo constantemente el registro
de estado del teclado, esperando a que se encienda el bit 7. Cuando esto sucede, el
software lee el registro del buffer del teclado, para obtener el carcter. Leer el registro de
datos del teclado provoca que el bit LISTO se ponga en 0.
La operacin de salida opera en forma similar. Para escribir un carcter en la pantalla,
el software lee el registro de estado de despliegue, para chequear si el bit LISTO est en 1.
Si no es as, realiza una iteracin hasta que el bit sea l, indicando de ese modo que el
dispositivo est listo para aceptar un carcter. Tan pronto como la terminal est lista, el
software escribe un carcter en el buffer del registro de despliegue, lo que provoca que se
transmita a la pantalla, as como que el dispositivo borre el bit LISTO en el registro de
estado. Cuando la terminal ha desplegado el carcter y est preparada para manejar el
siguiente, el controlador vuelve a poner en l al bit LISTO.
Como ejemplo de la E / S programada, considrese el procedimiento en Pas- cal de la
figura 5-42. A este procedimiento se le llama a ejecucin con dos parmetros: un arreglo
de caracteres a ser desplegado y el nmero de caracteres que contiene dicho arreglo, hasta
1K. El cuerpo del procedimiento es una iteracin que despliega un carcter a la vez. Para
hacerlo, la CPU debe aguardar hasta que el dispositivo est listo (ready= l). Los
procedimientos in y out serian rutinas tpicas en lenguaje ensamblador para leer y escribir
los registros especificados por el primer parmetro, hacia o desde la variable especificada
por el segundo parmetro. La divisin entre 128 se deshace de los 7 bits de orden inferior,
dejando el bit LISTO en el bit 0.

169

La principal desventaja de la E / S programada es que la CPU pasa la mayor parte de


su tiempo en un lazo, esperando a que el dispositivo est listo. Este en- foque se denomina
ocupado en esperar. Si la CPU no tuviera nada ms que hacer (v.g., la CPU de una
lavadora), no habra ningn problema. Sin embargo, si hay otros trabajos como ejecutar
programas, dicha espera es un desperdicio, por lo que se requiere de un mtodo para las
operaciones de E / S.
La forma de evitar esta espera, es hacer que la CPU inicialice el dispositivo de E / S y
le indique que genere una interrupcin cuando haya terminado su operacin. En la figura
5-41 se puede observar como se hace esto. El software puede solicitar, activando el bit
HABILITA INTERRUPCIN en un registro del dispositivo, que el hardware le d una seal
cuando la operacin de E / S termine. Ms adelante en este captulo, bajo el tema de flujos
de control, se estudiarn en detalle las interrupciones.
Vale la pena mencionar que en muchas computadoras la seal de interrupcin se
genera aplicando el AND booleano a los bits HABILITA INTERRUPCIN y LISTO. Si primero
el software habilita interrupciones (antes de la operacin de E / S), sta ocurrir de
inmediato ya que el bit LISTO tendr el valor de 1. De ah que sea necesario primero
inicializar el dispositivo e inmediatamente despus habilitar las interrupciones. Escribir en el
registro de estado no modifica al bit LISTO, por ser slo de lectura.
Aunque la entrada / salida manejada por interrupciones significa un gran adelanto
comparada con la E / S programada, est lejos de ser perfecta. El problema consiste en que
se requiere de una interrupcin para cada carcter transmitido y procesar interrupciones
resulta caro. Se necesitaba de una forma para deshacerse de la mayora de las
interrupciones.
La solucin reside en retomar la E / S programada, pero haciendo que alguien
diferente la lleve a cabo. (La solucin a muchos problemas reside en dejar que otro haga el
trabajo). La figura 5-43 muestra cmo se organiza esto. En es- te caso, se ha incorporado
una nueva pastilla controladora para el sistema, de Acceso Directo a Memoria (DMA),
con acceso directo al bus.

170

La pastilla DMA tiene en su interior (por lo menos) cuatro registros, los que pueden
cargarse por medio de software para correr en la CPU. El primero contiene la direccin de
memoria a leer o escribir. El segundo contiene el nmero de bytes o palabras a transferir. El
tercero especifica el nmero de dispositivo o el espacio de E / S a utilizar, y por ltimo, el
cuarto registro indica si los datos sern ledos de, o escritos en el registro de E / S.
Para escribir un bloque de 32 bytes de la direccin de memoria 100 a una terminal
(por ejemplo, el dispositivo No. 4), la CPU escribe los nmeros 32,100 y 4 en los tres
primeros registros DMA y luego el cdigo correspondiente a escritura (es decir, 1) en el
cuarto registro, tal como se muestra en la figura 5-43. Una vez inicializado as, el
controlador DMA realiza una solicitud del bus para leer el byte 100 de la memoria, de la
misma forma que lo hara la CPU. Una vez teniendo el byte, el controlador hace una
solicitud de E / S al dispositivo No. 4, para escribir en l dicho byte. Despus de completar
estas dos operaciones, el controlador incrementa en 1 su registro de direcciones y
decrementa su registro contador tambin en 1. Si este ltimo es an mayor que 0, lee otro
byte de memoria y lo escribe en el dispositivo.
Cuando la cuenta por fin llega a 0, se detiene la transferencia de datos y se activa la
lnea de interrupcin en la pastilla de la CPU. Con el DMA, la CPU slo tiene que inicializar
unos cuantos registros, despus de lo cual, es libre para hacer otra cosa, hasta que la
transferencia completa termine y recibe una interrupcin del DMA. Algunos controladores
tienen dos o ms de estos registros, lo que les permite controlar varias transferencias
simultneas.
Mientras que el DMA libera en gran medida a la CPU de la carga que representan las
operaciones de E / S, el proceso no es libre en su totalidad. Si un dispositivo de alta
velocidad, como un disco, est siendo usado por el DMA, se requerir de muchos ciclos del
bus, para referencias tanto a memoria como a dispositivos. Durante estos ciclos, la CPU
tendr que esperar (el Acceso Directo a Memoria tiene mayor prioridad de uso del bus que
la CPU, porque los dispositivos de E / S por lo general no pueden tolerar demoras). Al
proceso en el que un controlador DMA quita ciclos a la CPU se le denomina robo de ciclos.
Sin embargo, la ganancia de no tener que manejar una interrupcin por cada byte (o
palabra) que se transfiere, sobrepasa a la prdida por el robo de ciclos. En todas las
computadoras personales y minicomputadoras, el Acceso Directo a Memoria (DMA) es el
mtodo normal de efectuar las operaciones de E / S.
Por otra parte, en las grandes macrocomputadoras la situacin es diferente. Estas
mquinas realizan tantas operaciones de E / S, que el robo de ciclos saturara el bus, e
incluso con slo una interrupcin por cada bloque transferido, se dedicara demasiado
tiempo al manejo de interrupciones. La respuesta aqu es incorporar a la arquitectura
procesadores especiales de E / S, denominados canales de datos, como se puede apreciar

171

en la figura 2-19.
Un canal es en realidad una computadora especializada. Se le puede dar un programa
a ejecutar y luego desconectarlo para que lo lleve a cabo sin contar con ninguna ayuda de la
CPU principal. Cuando el programa ha sido ejecutado, el canal interrumpe a la CPU. Ya que
un programa de este tipo puede ser muy complicado, involucrando la transferencia de
muchos bloques de datos, se necesita un menor nmero de interrupciones que con las
simples transferencias de DMA.
En virtud de que ni los microprocesadores de Intel ni los de Motorola utilizan canales
de datos, se usar como ejemplo la estructura de E / S de una de las grandes
macrocomputadoras de IBM. Existen dos tipos de canales. Un canal selector, que controla
los dispositivos de alta velocidad, tales como los discos. Debido a la alta velocidad de estos
dispositivos, un canal selector slo puede manejar una transferencia a la vez. En contraste,
un canal multiplexor, puede manejar al mismo tiempo diversos dispositivos de baja
velocidad, como son las terminales.
Para realizar operaciones de E / S en una computadora con canales de datos, la CPU
primero crea un programa para el canal y lo almacena en la memoria principal. Enseguida,
ejecuta una instruccin START I / O (Inicia E / S), que especfica el canal y el dispositivo de
E / S. A continuacin, el canal extrae la direccin de su programa de una localidad fija en la
memoria, coloca dicha direccin en su registro de contador de programa y comienza a
ejecutar su programa de canal. En la figura 5-44 se muestran las diversas palabras
comprendidas en el proceso, para una macrocomputadora tpica.
Un programa de canal consta de una o ms instrucciones de 64 bits para el canal.
Cada instruccin contiene un cdigo de operacin de 8 bits, que indica qu operacin
realizar. Estas incluyen: WRITE, READ, READ BACKWARD (v.g., para rebobinar cintas
magnticas), CONTROL (v.g., arrancar el motor), SENSE (v.g., verificar el fin de archivo) y,
CONDITIONAL BRANCH. Las instrucciones del canal incluyen tambin una direccin de
buffer de 24 bits para sealar de dnde, o en dnde se leern o escribirn los datos, un
contador que indica cuntos bytes se van a transferir, as como algunos bits de bandera.
Estos ltimos especifican aspectos como la no transmisin de datos (til para salvar un
registro en una cinta) y detener el canal despus de terminar esta instruccin.
Adems de la instruccin START I / O, la CPU tiene otras instrucciones como HALT I /
O que fuerza la detencin de toda actividad en el canal seleccionado. Las instrucciones TEST
I / O y TEST CHANNEL se usan para determinar el estado actual de las actividades de E / S.
Existen tambin disponibles otras cuantas instrucciones menores de E/S.
Todas las CPU de Intel tiene instrucciones explcitas de E / S para leer o escribir bytes,
palabras o palabras largas. Estas especifican el nmero de puerto de E / S deseado, ya sea
en forma directa por medio de un campo en la propia instruccin, o indirectamente, usando
el registro DX para almacenarlo. Adems, por supuesto se utilizan las pastillas DMA para
liberar a la CPU de la carga de las operaciones de E / S.
Ninguna de las pastillas de Motorola tiene instrucciones de E / S. Se supone que los
registros de los dispositivos de E / S sern direccionados por medio del mapeo a memoria.
Tambin aqu, el DMA se utiliza mucho.

172

FLUJO DE CONTROL
El flujo de control se refiere a la secuencia en que se ejecutan las instrucciones. En
general, las que se realizan consecutivamente se extraen de posiciones consecutivas de
memoria. Las llamadas a procedimientos alteran el flujo de control, detenindose el
procedimiento en curso y arrancando el que ha sido llamado. Las corrutinas estn
relacionadas con los procedimientos y causan alteraciones similares al flujo. Los desvos y
las interrupciones tambin producen el mismo efecto en condiciones especiales. Todos estos
temas se vern en las secciones siguientes.

Flujo de control secuencial y saltos


La mayora de las instrucciones no alteran el flujo de control. Despus de ejecutarse
una, se extrae la que le sigue en la memoria y se ejecuta. Despus de cada instruccin el
contador de programa se incrementa en el nmero de posiciones de memoria que dicha
instruccin ocupa. Si se observa el contador de programa durante un largo periodo
comparado con el tiempo medio de ejecucin de una instruccin, se ver que es,
aproximadamente, una funcin lineal del tiempo, incrementndose en la longitud media de
instruccin cada tiempo medio de ejecucin de instruccin. Dicho de otro modo, el orden
dinmico en el que el procesador realmente ejecuta las instrucciones es el mismo que el
orden en que stas aparecen en el listado del programa.
Si un programa tiene saltos, no se mantiene esta relacin tan simple entre el orden en
que las instrucciones estn escritas y el orden en que se ejecutan. Cuando hay saltos, el
contador de programa deja de ser una funcin montona creciente de tiempo, como se

173

muestra en la figura 5-45. En consecuencia, se hace difcil visualizar la secuencia de


ejecucin a partir del listado del programa. Cuando los programadores tienen problemas en
seguir la secuencia en que e! procesador va a ejecutar las instrucciones, es fcil que
cometan errores. Esta observacin llev a Dijkstra (1968) a escribir el controvertido articulo
La declaracin GO TO considerada perjudicial, en la que se sugiere evitar las declaraciones
GO TO. Dicho artculo hizo nacer la revolucin de la programacin estructurada, una de
cuyas premisas en la sustitucin de las declaraciones GO TO con formas ms estructuradas
de flujo de control, tal como la iteracin WHILE. Desde luego, estos programas se compilan
en el nivel 2, y pueden contener muchos saltos, ya que la implantacin de IF, WHILE y otras
estructuras de control de alto nivel requieren de saltos.

Procedimientos
La tcnica ms importante para estructurar programas es el procedimiento. Desde
cierto punto de vista, una llamada a procedimiento altera el flujo de control, como lo hace el
salto, pero a diferencia de ste devuelve el control a la sentencia que sigue a la llamada,
una vez que ha terminado de realizar su tarea.
Sin embargo, desde otro punto de vista el cuerpo del procedimiento se puede
considerar como si definiera una nueva instruccin de nivel superior. Desde este punto de
vista, una llamada a procedimiento puede considerarse como una simple instruccin,
aunque pueda ser bastante complicada. Para comprender la parte de un programa que
contiene una llamada a un procedimiento, slo se necesita saber qu hace, no cmo lo
hace.
Un tipo muy interesante es el procedimiento recursivo, que es un procedimiento
que se llama a s mismo. El estudio de este tipo de procedimientos proporciona una
profundidad considerable de cmo estn implementadas las llamadas a procedimientos y de
lo que son en realidad las variables locales. A continuacin se dar un ejemplo de un
procedimiento recursivo. Un viejo problema que tiene una solucin sencilla por medio de la
recursin es el de las Torres de Hanoi. Hay tres varillas, la primera de las cuales pasan
por el centro de una serie de n discos concntricos. Cada uno de ellos tiene un dimetro
ms pequeo que el que est justo por debajo de l. Las otras dos varillas estn vacas
inicialmente. El problema consiste en transferir todos los discos a la varilla 3, uno cada vez,
de manera que nunca haya un disco mayor sobre uno menor. La figura 5-46 muestra la
configuracin inicial para n = 5 discos.

174

La solucin de mover n discos de la varilla l a la 3 consiste en mover primero n 1


discos de la varilla 1 a la 2. Seguidamente se mueve un disco de la l a la 3 y luego los n-1
discos de la 2 a la 3 (vase figura 5-42). Para resolver el problema, necesitamos un
procedimiento que mueva n discos de la varilla i a la j. Cuando se llama al procedimiento
por medio de
torres (n, i, j)
Se imprime la solucin. El procedimiento comprueba primero s n = 1. Si lo es, la
solucin es trivial; nada ms que moverlo de la i a la j. Si n i, la solucin consta de tres
partes como la que acabamos de comentar, siendo cada una de ellas una llamada a un
procedimiento recursivo.
La solucin completa se muestra en la figura 5-48.
torres (3, l, 3)
La llamada para resolver el problema de la figura 5-47, generar tres llamadas ms,
ya que n no es 1. Concretamente:
torres (2, l, 2)
torres (l, l, 3)
torres (2, 2, 3)
La primera y tercera llamadas generarn cada una tres llamadas ms, haciendo un
total de siete.
Para que los procedimientos sean recursivos, se necesita una pila donde almacenar los
parmetros. Cada vez que se llama a un procedimiento, se reserva en ella un bloque de
memoria, denominado trama de pila, para la direccin de retorno, los parmetros y las
variables locales si las hay. La trama ms reciente es la trama actual. En nuestros ejemplos
supondremos que la pila siempre crece hacia abajo, de las direcciones altas de memoria a
las bajas. Se ha seleccionado esta convencin porque la mayora de las computadoras,
incluyendo las de Intel y Motorola, hacen las cosas de esta manera. De ah que una
instruccin PUSH (Apila), almacene una palabra en la direccin dada por el apuntador de
pila y luego decremente dicho apuntador segn el tamao de la palabra.

175

Adems del apuntador de pila, que apunta a la cima de la pila (direccin numrica
ms baja), a menudo conviene tener un apuntador de base local, BL, que apunte a un
punto fijo de la trama. La figura 5-49 muestra la trama de pila para una mquina con
palabras de 16 bits. La pila comienza en la direccin 1000 y crece hacia abajo, hacia la
direccin 0. La llamada original a torres apilan n, i y j, y ejecuta una instruccin de llamada
que apila la direccin de retorno, colocndola en la 994. Al entrar, el procedimiento
llamada-almacena el valor anterior de BL en la pila y decrementa el apuntador de pila para
asignar espacio a las variables locales. Con una sola variable local de 16 bits, el apuntador
de pila, AP se decrementa en 2. La situacin, despus de hacer todas estas cosas, se
muestra en la figura 5-49(a).

176

Una vez dicho esto, podemos explicar para qu sirve BL. En principio, se puede hacer
referencia a las variables con desplazamientos respecto a AP. Sin embargo, segn se apilan
y desapilan palabras, estos desplazamientos cambian. Aunque en algunos casos el
compilador puede conocer y seguir el nmero de palabras que hay en la pila, otras veces no
puede y, en todo caso, requiere considerable trabajo. Adems, en algunas mquinas, como
en las Intel, el acceso a variables situadas a una distancia conocida del AP requiere del
orden de media docena de instrucciones.
En consecuencia, muchos compiladores usan un segundo registro, BL, para hacer
referencia a las variables locales y a los parmetros debido a que sus distancias a BL no
cambian con las operaciones de apilar y desapilar. En las CPU de Intel, el registro BP (EBP)
se usa para este fin. En las de Motorola, cualquier registro de direcciones, excepto el A7 (el
apuntador de pila) lo puede hacer. Los parmetros tienen desplazamientos positivos
respecto a BL y las variables loca- les los tienen negativos. Lo primero que un
procedimiento debe hacer es salvar el BL previo (de modo que pueda recuperarse a la salida
del procedimiento), copiar AP a BL y avanzar AP para reservar espacio a las variables
locales. Este cdigo se llama prlogo del procedimiento. Hasta la salida del
procedimiento, la pila debe limpiarse de nuevo, mediante el llamado_
eplogo del
procedimiento. Una de las caractersticas ms importantes de cualquier computadora reside
en qu tan corto y rpido puede hacer el prlogo y el eplogo. Si son largos y lentos, las
llamadas a procedimiento sern costosas. Los programadores que rindan culto a la
eficiencia, aprendern a evitar la escritura de muchos procedimientos cortos y a escribir en
su lugar programas largos, monolticos y sin estructura. Las instrucciones ENTER y LEAVE
de Intel y las instrucciones LINK y UNLK de Motorola se disearon para que realicen la
mayor parte del trabajo de los procedimientos de prlogo y eplogo de forma eficiente.
Volvamos ahora al problema de las Torres de Hanoi. Cada llamada a procedimiento
aade a la pila una nueva trama y cada retorno elimina de ella una trama. Para ilustrar el
uso de una pila en la realizacin de procedimientos recursivos, vamos a hacer un trazado de
llamadas, comenzando con
torres (3, l, 3)
La figura 5-49(a) muestra la pila justo despus de hacer esta llamada. El
procedimiento comprueba primero si n = l y, al descubrir que n = 3, hace la llamada

177

torres (2, l, 2)
Despus de completar esta llamada, la pila est como se muestra en la figura 549(b) y el procedimiento comienza de nuevo por el principio (un procedimiento llamado
siempre empieza por el principio). Esta vez la comprobacin de s n = 1 falla de nuevo y se
hace la llamada
torres (1, l, 3)

Entonces la pila est como se muestra en la figura 5-49(c) y el contador de


programa apunta al comienzo del procedimiento. Esta vez la comprobacin tiene xito y se
imprime una lnea. Seguidamente el procedimiento retorna, elimina una trama de la pila y
deja BL y AP como en la figura 5-49(d). El procedimiento contina ejecutndose en la
direccin de retorno, que es la segunda llamada:
torres (l, 1, 2)
Esta aade una trama a la pila, como se muestra en la figura 5-49(e). Se imprime
otra lnea y, despus del retorno, se elimina una trama de la pila. Las llamadas a
procedimientos continan de esta manera hasta que la llamada original termina de
ejecutarse y se elimina de la pila la trama de la figura 5-49(a).
Se pueden pasar parmetros por registro o por la pila. A las normas que regulan el
cmo se pasan los parmetros se les conoce como secuencia de llamado.

178

Corrutinas
En la secuencia ordinaria de llamada es clara la distincin entre el procedimiento que
llama y el llamado. Considrese el procedimiento A, que llama al procedimiento B, en la
figura 5-50.

El procedimiento B hace clculos un rato y retorna a A. A primera vista podra


considerarse simtrica esta situacin, ya que ni A ni B son el programa principal, sino que
son procedimientos (el procedimiento A podra haber sido llamado por el programa
principal, pero este hecho es irrelevante). Adems, primero hay una transferencia de control
de A a B (la llamada) y ms tarde una transferencia de control de B a A (el retorno).
La simetra viene del hecho de que cuando pasa el control de A a B, B comienza a
ejecutarse desde el principio. Cuando B retorna a A, la ejecucin no comienza al principio de
A, sino en la sentencia que sigue a la llamada. Si A se ejecutara durante un rato y llamara a
B otra vez, la ejecucin comenzara al principio de B de nuevo, no en la sentencia que sigue
al retorno anterior. Si, en el transcurso de la ejecucin, A llamara a B muchas veces, cada
una de las veces que arrancara B, ste comenzara por el principio, mientras que A nunca lo
hace.
Esta diferencia se refleja en el mtodo por el que se pasa el control de A a B. Cuando
A llama a B, usa la instruccin de llamada a procedimiento, que pone la direccin de retorno
(es decir, la de la primera sentencia que sigue a la llamada) en algn sitio til, por ejemplo
en la cima de la pila. Pone entonces la direccin de B en el contador de programa para
completar la llamada. Cuando B retorna, no usa la instruccin de llamada, sino la de
retorno, que simplemente desapila la direccin de retorno y la mete en el contador de
programa.
A veces es til tener dos procedimientos, A y B, cada uno de los cuales llame al otro
como a un procedimiento. Cuando B retorna a A, salta la sentencia que sigue a la llamada a
B, como antes. Cuando A transfiere control a B, no va al principio (excepto la primera vez)

179

sino a la sentencia que sigue al retorno ms reciente, es decir, a la ms reciente llamada


a A. Dos procedimientos, cada uno de los cuales considera el otro como un procedimiento
(en el sentido de que es llamado, realiza cierto trabajo y retorna a la sentencia que sigue a
la llamada), se llaman corrutinas.
Ni la llamada ni el retorno ordinarios bastarn para llamar a las corrutinas, ya que la
direccin a la que se ha de saltar viene de la pila, como en un retorno; pero, a diferencia del
retorno ordinario, la llamada a la corrutina pone a su vez una direccin de retorno en alguna
parte para hacer un retorno posterior a ella. Esta operacin se podra efectuar en forma
sencilla si hubiera una instruccin que intercambiara la cima de la pila y el contador de
programa. En detalle, esta instruccin podra extraer primero la antigua direccin de retorno
de la pila, introducindola en un registro temporal interno; despus metera el contador de
programa en la pila y, finalmente transferira el contenido del registro temporal al contador
de programa. El apuntador de pila no cambia, ya que se saca una palabra de la pila y se
mete otra. Una secuencia de llamadas a corrutinas debe iniciarse metiendo la direccin de
una de ellas en la pila. Una introduccin de llamada a corrutina se denomina, a veces,
instruccin de reanudar. De hecho existe en algunas mquinas de nivel 2, tal como se
describe aqu. Sin embargo, ms a menudo, se necesitan dos o tres instrucciones para
hacer el trabajo. En la figura 5-52 se ejemplifica la instruccin REANUDAR. Ver tambien
figura 5-51.
Para ilustrar con un ejemplo el uso de las corrutinas, considrese un sistema de
programacin muy avanzado que suministre documentacin automtica de los programas.
En cualquier lugar de un programa el programador puede insertar un comentario precedido
y seguido del smbolo #. El programa es usado por el compilador para producir el programa
objeto. Los comentarios son usados por el sistema de documentacin para producir el
manual. El compilador ignora los comentarios y el sistema de documentacin ignora el
programa. Para hacer el problema interesante, supondremos que la parte de documentacin
es muy inteligente y analiza sintcticamente todos los comentarios para estar segura de que
no cometen errores gramaticales, ya que los que escriben manuales de programacin
parecen tener grandes dificultades con el idioma. Un ejemplo de entrada se muestra en la
figura 5.53.
El programa descrito se puede escribir como dos corrutinas; una para analizar
sintcticamente el programa y otra para analizar sintcticamente el castellano. La corrutina
del programa (el compilador) comienza leyendo la entrada y analizndola segn viene.
Llega un momento en que encuentra el primer smbolo de comentario, #. En este momento
desea ignorar el comentario para continuar analizando. Para ello, el compilador llama a la
corrutina de documentacin, y se salta el comentario.

180

El sistema de documentacin comienza leyendo y analizando el comentario. En cierto


momento lee el smbolo de comentario. Desde su punto de vista, debe ignorar el texto del
programa, de manera que regresa al compilador para saltar- se dicho texto. El compilador
arrancar, con todas sus variables y apuntadores internos intactos, desde el punto en que
se detuvo, no por el principio. El analizador sintctico de castellano puede estar en un
estado muy complicado en este momento y es esencial que, cuando el compilador se haya
comido el siguiente trozo del texto del programa, arranque al analizador de comentarios en
el estado en que estaba cuando reanud al compilador.
Aqu debemos notar que para realizar corrutinas se necesitan mltiples pilas, ya que
cada corrutina puede tambin llamar a procedimientos en la forma ordinaria, adems de
hacer llamadas a corrutinas.

181

if asiento = 350 # si el avin est lleno #


then
begin
lleno = 1; # pon una bandera #
Nuevo avin # pide otro avin #
end
else reserve(pasajero); # si no, dele un asiento a esta persona #
Fig. 5-53. Un fragmento de programa con cdigo y documentacin.

Desvios
Un desvo es un tipo de llamada automtica a procedimiento iniciada por alguna
condicin debida al programa, normalmente una condicin importante aunque improbable.
Un buen ejemplo es el desbordamiento.
En muchas computadoras, si el resultado de una operacin aritmtica excede al mayor
nmero que pueden representar, tendr lugar un desvo, entendindose por esto que se
conmutar el flujo de control a alguna posicin de memoria fija, en lugar de continuar en
secuencia. En dicha posicin fija habr un salto a un procedimiento de- nominado
procedimiento controlador de desvos por desbordamiento, que realizar alguna accin
apropiada, tal como imprimir un mensaje de error. Si el resultado de una operacin cae en
el rango correcto, no ocurrir ningn desvo.
La caracterstica esencial del desvo es que se inicia en alguna condicin excepcional
causada por el programa mismo y detectada por el hardware o por el microprograma. Otro
mtodo para tratar desbordamientos consiste en tener un registro de un bit que se ponga a
1 cuando suceda un desbordamiento. El programador que desee comprobar si hay
desbordamiento debe incluir una instruccin explcita de salto si el bit de desbordamiento
est a 1 despus de cada instruccin aritmtica. Hacer esto sera lento y costara mucho
espacio.
Por lo regular, los desvos se implementan haciendo que el microprograma realice la
verificacin.
El desvo puede implementarse por medio de una comprobacin explcita efectuada
por el intrprete a nivel 1. Si detecta desbordamiento, cargar la direccin del desvo en el
contador de programa. Lo que es un desvo en un nivel puede estar bajo control del
programa en un nivel inferior. El hecho de hacer que el microprograma efecte la
comprobacin ahorra tiempo en comparacin con el que ocupa la comprobacin hecha por
el programador, ya que la puede hacer fcilmente al mismo tiempo que alguna otra cosa.
Tambin ahorra memoria, ya que las comprobaciones necesitan estar una sola vez en unos
pocos procedimientos del nivel 1, independientemente de cuntas operaciones aritmticas
haya en el programa principal.
Algunas condiciones corrientes que causan a veces desvos son desbordamientos y
subdesbordamientos en punto flotante, desbordamiento en enteros, violacin de

182

protecciones, cdigo de operacin indefinido, desbordamiento de la pila, intento de arrancar


un dispositivo de E/S que no existe, intento de extraer una palabra con direccin impar y la
divisin entre cero.

Interrupciones
Las interrupciones son cambios en el flujo de control, no ocasionados por el programa
que se ejecuta, sino por alguna otra cosa normalmente relacionada con la E/S. Por ejemplo,
un programa puede decirle al disco que empiece a transferir informacin y que produzca
una interrupcin cuando acabe la transferencia. Al igual que el desvo, la interrupcin
detiene el programa en curso y transfiere control al procedimiento de tratamiento de
interrupciones, que realiza alguna accin apropiada. Cuando termina, el procedimiento de
interrupciones retorna el control al programa interrumpido. Debe continuar el proceso
interrumpido exactamente en el mismo estado en que estaba cuando tuvo lugar la
interrupcin. Ello significa restaurar los registros internos al estado que tenan antes de la
interrupcin.
La diferencia esencial entre los desvos y las interrupciones es que los desvos son
sncronos con el programa y las interrupciones son asncronas. Si el programa se vuelve a
ejecutar un milln de veces, los desvos tendrn lugar cada vez, pero las interrupciones
pueden variar, por ejemplo, conforme al momento exacto en que una persona en una
terminal pulsa la tecla de retorno de carro. La razn de que los desvos sean reproducibles y
las interrupciones no lo sean reside en que los desvos los ocasiona el programa
directamente, y las interrupciones, a lo sumo, son causadas por el programa en forma
indirecta. Para apreciar realmente cmo funciona una interrupcin, considrese un ejemplo
comn: una computadora desea enviar una lnea de caracteres a una terminal. Primero, el
software del sistema rene en un buffer a todos los caracteres que se van a escribir,
inicializa una variable global apt, para apuntar al inicio del buffer y asigna a una segunda
variable global cuenta con el nmero de caracteres que se enviarn. En seguida checa si la
terminal est lista y, en su caso, enva el primer carcter (v.g., utilizando registros como los
de la figura 5-41). Una vez iniciada la operacin de E/S, la CPU se libera para correr otro
programa o hacer alguna otra cosa. En el transcurso del tiempo, el carcter se despliega en
la pantalla. La interrupcin puede ahora comenzar. Los pasos, en forma simplificada, son los
siguientes:

ACCIONES DE HARDWARE
1. El controlador del dispositivo activa una lnea de interrupcin para
iniciar la secuencia de interrupcin.
2. Tan pronto como la CPU se encuentra preparada para manejar la
interrupcin, activa en el bus una seal de interrupcin recibida.
3. Cuando el controlador del dispositivo ve que su seal de interrupcin
ha sido recibida, pone un nmero entero pequeo en las lineas de
datos para identificarse a si mismo. A este nmero se le denomina
vector de interrupcin.
4. La CPU quita del bus al vector de interrupcin y lo almacena de
manera temporal.
5. La CPU apila el contador de programa y la Palabra de Estado del
Programa (PSW) en la pila.
6. En seguida, la CPU ubica un nuevo contador de programa utilizan- do
el vector de interrupcin como ndice dentro de una tabla en la parte
baja de la memoria. Si, por ejemplo, el contador de programa es de 4
bytes, el vector de interrupcin n correponde a la direccin 4n. Este

183

nuevo contador de programa apunta al inicio de la rutina de servicio


de interrupcin, para el dispositivo que la provoc.
ACCIONES DE SOFTWARE
7. La primera cosa que hace la rutina de servicio de interrupcin es
salvar todos los registros, de modo que puedan recuperarse ms
tarde. Se pueden salvar en la pila, o en una tabla del sistema.
8. Cada vector de interrupcin es compartido, por lo general, por todos
los dispositivos de un tipo determinado, as que an no se sabe qu
terminal provoc la interrupcin. Se puede encontrar el nmero de la
terminal leyendo algn registro de dispositivo.
9. Se puede leer ahora, cualquier otra informacin acerca de la
interrupcin, tal como cdigos de estado.
10.
Si ocurri un error de E/S, se puede manejar aqui.
11. Se actualizan las variables globales apt y cuenta. La primera se
incrementa para apuntar al siguiente byte; y la segunda se
decrementa para indicar que queda un byte menos para desplegar. Si
cuenta es an mayor que 0, existen an caracteres por enviar.
Entonces, copia el que est siendo apuntado en ese momento por apt
en el registro del buffer de salida.
12.
En caso de requerirse, se enva un cdigo especial para indicar al
dispositivo o al controlador de interrupciones que la instruccin ha sido
procesada. Por ejemplo, el 8259A requiere de dicha seal.
13.
Restaura todos los registros salvados.
14.
Ejecuta la instruccin RETURN FROM INTERRUPT (regresa de
interrupcin), poniendo a la CPU de nuevo en el modo y estado que
tena justo antes de que ocurriera la interrupcin. La computadora
contina como si no hubiera habido interrupcin.
Un concepto clave relacionado con las interrupciones es la transparencia. Cuando
sucede una interrupcin, tienen efecto algunas acciones y se ejecutan algunos cdigos, pero
cuando todo termina, la computadora debe de ser regresada exactamente al mismo estado
en que se encontraba antes de la interrupcin. Una rutina de interrupcin que tiene esta
propiedad se dice que es transparente. Hacer que todas la interrupciones sean
transparentes hace que el proceso de interrupciones en su conjunto sea mucho ms fcil de
entender.
Si la computadora slo tiene un dispositivo de E/S, entonces las interrupciones
trabajan tal y como se describi antes y no hay nada ms que agregar al respecto. Sin
embargo, una computadora grande puede tener muchos dispositivos de E/S y varios pueden
estar corriendo al mismo tiempo, probablemente en beneficio de diferentes usuarios. Existe
una posibilidad diferente de cero, que mientras una interrupcin se est ejecutando, un
segundo dispositivo de E/S quiera generar su interrupcin.
Para este problema se pueden tomar dos enfoques. El primero es que todas las rutinas
de interrupcin inhiban, como primera tarea, a todas las interrupciones posteriores, aun
antes de salvar los registros. Este enfoque es muy simple mientras las interrupciones se
suceden en forma estrictamente secuencial, pero puede causar problemas a los dispositivos
que no pueden tolerar mucha demora. Por ejemplo, en una lnea de comunicaciones de
9600 bps, los caracteres llegan cada 1042 microsegundos, est o no listo el dispositivo. Si el
primer carcter no ha sido procesado para cuando llega el segundo, puede haber prdida de
informacin.

184

Cuando una computadora tiene dispositivos de E/S con tiempos crticos, un mejor
enfoque en el diseo es el de asignar una prioridad a cada dispositivo, alta para los
dispositivos muy crticos y baja para los menos decisivos. En forma similar, la CPU debe
tener tambin prioridades, por lo general determinadas por un campo en la PSW. Cuando
un dispositivo con prioridad n interrumpe la rutina de interrupcin, debe correr tambin con
prioridad n.
Cuando se est ejecutando una rutina de prioridad n, cualquier intento de interrupcin
de un dispositivo con menor prioridad se ignora, hasta que la rutina termina y la CPU vuelve
a correr un programa de usuario (prioridad 0). Por otra parte, las interrupciones de
dispositivos con prioridad mayor, deben ejecutarse sin demora.
Teniendo sujetas a interrupcin a las propias rutinas de interrupcin, la mejor manera
de mantener correcta la administracin es asegurarse de que todas las interrupciones sean
transparentes. Considrese un ejemplo simple de interrupciones mltiples. Una
computadora tiene tres dispositivos de E / S, una impresora, un disco y una lnea RS 232,
con prioridades de 2, 4 y 5, respectivamente. Al principio (t = 0), se encuentra en ejecucin
un programa de usuario, cuando de repente, en 1 = 10, ocurre una interrupcin de la
impresora. Como se puede ver en la figura 5-54, se inicia la rutina de servicio de
interrupcin (ISR) de la impresora.

En t = 15, la lnea RS 232 requiere de atencin y genera otra interrupcin. Ya que la


linea RS 232 tiene una prioridad mas alta (5) que la de la impresora (2), la interrupcin se
realiza. El estado de la maquina, que en ese momento est corriendo la ISR de la
impresora, se coloca en la pila y se inicia la ISR de la lnea RS 232.
Poco despus, en t = 20, el disco termina y requiere de servicio. No obstante, su
prioridad (4) es menor que la de la rutina actualmente en ejecucin (5), de modo que el
hardware de la CPU no acepta la interrupcin y la mantiene pendiente. En t = 25, termina la
rutina de las lneas RS 232 y regresa al estado en que se encontraba antes de generar la
interrupcin, es decir, ejecutando la rutina de servicio de interrupcin de la impresora, con
la prioridad 2. Tan pronto como la CPU cambia a la prioridad 2, an antes de poder ejecutar
una sola instruccin, se permite entonces la interrupcin del disco con prioridad 4 y se
ejecuta la ISR del disco. Cuando sta concluye, la rutina de la impresora puede continuar.
Por ltimo, en t = 40, todas las rutinas de servicio han finalizado y el programa de usuario
contina en el punto en el que se le dej.
Todas las pastillas de Intel tienen dos niveles (prioridades) de interrupcin, diferibles y
no diferibles. Estas ltimas se usan, por lo regular, para sealar casi catstrofes, tales como
errores de paridad de memoria. El tipo diferible es el que utilizan todos los dispositivos de
E/S.
Cuando un dispositivo de E/S enva una interrupcin, la CPU usa el vector, de
185

interrupcin para indexar una tabla de 256 elementos y encontrar la direccin de la rutina
de servicio de interrupcin. En el 8088, dicha tabla se encuentra en la direccin absoluta 0,
con 4 bytes para cada elemento. En los procesadores 80286 y 80386, los vectores de
interrupcin son descriptores de segmento de 8 bytes y la tabla puede estar ubicada en
cualquier parte de la memoria, con un registro global apuntando a su inicio.
Teniendo slo un nivel de interrupcin utilizable, no existe forma de que la CPU
permita que un dispositivo con prioridad alta, ni tampoco baja, suspenda una rutina de
servicio de interrupcin con prioridad media. Para resolver este problema, las CPU de Intel
se usan por lo general junto con un controlador de interrupciones 8259 A (vase figura 338). Cuando se presenta la primera interrupcin, digamos con la prioridad n, la CPU se
interrumpe. Si se presenta otra con una prioridad mayor, el 8259 A realiza una segunda
interrupcin. Si por el contrario es menor, se mantiene pendiente hasta que la primera
termina. (La rutina debe enviar un comando en forma explcita al 8259 A, para indicarle
cuando termina y permitir que se lleven a cabo interrupciones con menor prioridad).
En los procesadores 680 x 0 de Motorola la situacin es en cierta forma diferente.
Como en el 8088, tienen 256 vectores de interrupcin de 4 bytes que inician en la direccin
absoluta 0. Sin embargo, a diferencia de las pastillas de Intel, tienen tres patas destinadas
al nmero del nivel de interrupcin, del 0 al 6, ms el 7 que es del tipo no diferible.
Adems, la CPU tiene en la PSW un campo de prioridad de 3 bits. Cuando un dispositivo de
E / S desea provocar una interrupcin, coloca su prioridad en las tres patas y enva una
seal. La CPU puede entonces, dependiendo de la prioridad actual, aceptar o rechazar la
solicitud. En este caso no se requiere de una pastilla como la 8259A.

186

CONCLUSIN

187

BOLILLA III:
ARQUITECTURA DEL
PROCESADOR

188

INDICE
INDICE GENERAL............................................................................................1
BOLILLA I: LA COMPUTADORA..............................................................................................4
INDICE.......................................................................................................................................5
INTRODUCCIN...................................................................................................................12
LA COMPUTADORA............................................................................................................13
CONCEPTO:.........................................................................................................................13
FUNCIONES Y ACCIONES:...............................................................................................13
Para qu sirve una computadora?:.........................................................................................13
Computadora y Circuitos:......................................................................................................14
HARDWARE Y SOFTWARE: ............................................................................................14
Software: ...........................................................................................................................14
Al software se lo clasifica en dos grupos: .....................................................................14
Hardware:...........................................................................................................................15
Arquitectura - Componentes Bsicos:...................................................................................15
Unidad de Control:.............................................................................................................15
Unidad aritmtico-lgica:..................................................................................................15
Memoria:(Memoria Central)..............................................................................................15
Perifricos: ........................................................................................................................15
Ncleo de la computadora: ...............................................................................................15
BUSES DE COMPUTADORAS:.........................................................................................16
Buses sncronos y asncronos: ..............................................................................................18
Arbitraje del bus:...............................................................................................................19
Ejemplo de encadenamiento margarita:.............................................................................19
Solicitud del Bus............................................................................................................19
Dispositivos de E/S............................................................................................................19
Manejo de interrupciones:.................................................................................................20
Canales de e/s.........................................................................................................................20
TECNOLOGA DE CANALES:.......................................................................................21
TIPOS DE CANALES:.....................................................................................................21
Multiplexor: ..................................................................................................................21
Selector..........................................................................................................................22
Multipexor por bloques: ................................................................................................22
Spoll: .........................................................................................................................22
SISTEMA OPERATIVO.......................................................................................................23
Introduccin: ....................................................................................................................23
QU ES UN SISTEMA OPERATIVO?.........................................................................24
CONCLUSIN........................................................................................................................25
BOLILLA II (Parte 1): EL NIVEL DE LOGICA DIGITAL.....................................................26
INDICE.....................................................................................................................................27
INTRODUCCIN...................................................................................................................34
EL NIVEL DE LOGICA DIGITAL......................................................................................35
COMPUERTAS Y ALGEBRA BOOLEANA......................................................................35
Compuertas........................................................................................................................35
Algebra booleana...............................................................................................................37
189

Implementacin de funciones booleanas ..........................................................................38


Equivalencia entre circuitos...............................................................................................40
CIRCUITOS DIGITALES BSICOS..................................................................................44
Circuitos integrados ..........................................................................................................44
Circuitos combinacionales ................................................................................................47
Multiplexores ................................................................................................................47
Decodificadores ............................................................................................................49
Comparadores ...............................................................................................................51
Arreglos (matrices) lgicos programables ....................................................................51
Circuitos aritmticos..........................................................................................................53
Registros de corrimiento................................................................................................53
Sumadores .....................................................................................................................54
Unidades aritmticas y lgicas......................................................................................55
Relojes ..............................................................................................................................55
MEMORIA............................................................................................................................57
Biestables...........................................................................................................................57
Bieslables SR sincronizados..........................................................................................59
Biestables D sincronizados............................................................................................59
Flip-flops y registros..........................................................................................................59
Registros........................................................................................................................60
Organizacin de las memorias...........................................................................................61
Propiedades de las memorias.............................................................................................64
MICROPROCESADORES y BUSES...................................................................................66
Microprocesadores ............................................................................................................66
Buses de computadora.......................................................................................................68
Buses sncronos .................................................................................................................70
BUSES ASINCRONOS....................................................................................................73
Arbitraje del bus ................................................................................................................74
Manejo de interrupciones ..................................................................................................77
CONCLUSIN........................................................................................................................79
BOLILLA II (Parte 2): EL NIVEL DE MICROPROGRAMACIN.......................................80
INDICE.....................................................................................................................................81
INTRODUCCIN...................................................................................................................88
EL NIVEL DE MICROPROGRAMACIN .......................................................................89
REPASO SOBRE EL NIVEL DE LGICA DIGITAL .......................................................90
Registros ..........................................................................................................................90
Buses .................................................................................................................................90
Multiplexores y decodificadores .......................................................................................92
Unidades aritmticas y lgicas y registros de corrimiento ...............................................92
Relojes ..............................................................................................................................93
Memoria principal .............................................................................................................94
Encapsulado de los componentes .....................................................................................95
UNA MICROARQUITECTURA TIPICA ...........................................................................96
La ruta de datos .................................................................................................................96
Microinstrucciones ............................................................................................................98
Cronologa de las microinstrucciones .............................................................................100
Secuenciamiento de las microinstrucciones ...................................................................102
UNA MACROARQUITECTURA TIPICA .......................................................................103

190

Pilas .................................................................................................................................103
El juego de macroinstrucciones ......................................................................................107
MICROPROGRAMACIN: UN EJEMPLO ....................................................................110
El lenguaje micro ensamblador .......................................................................................110
El ejemplo de microprograma .........................................................................................111
Observaciones sobre el microprograma ..........................................................................113
Perspectivas ....................................................................................................................114
EL DISEO DEL NIVEL DE MICROPROGRAMACIN ............................................115
Microprogramacin horizontal frente a microprogramacin vertical..............................115
Nanoprogramacin ..........................................................................................................122
Mejora del rendimiento ...................................................................................................123
Memoria cach ...............................................................................................................129
CONCLUSIN......................................................................................................................134
................................................................................................................................................135
BOLILLA II (Parte 3): EL NIVEL DE MAQUINA CONVENCIONAL................................135
INDICE...................................................................................................................................136
INTRODUCCIN.................................................................................................................143
EL NIVEL DE MQUINA CONVENCIONAL.................................................................144
EJEMPLOS DEL NIVEL DE MAQUINA CONVENCIONAL........................................144
FORMATOS DE INSTRUCCIN.....................................................................................145
Criterios de diseo de formatos de instruccin................................................................146
Cdigos de operacin con extensin...............................................................................147
Ejemplos de formatos de instrucciones...........................................................................149
La PDP-11...................................................................................................................149
Direccionamiento.............................................................................................................149
Direccionamiento inmediato........................................................................................150
Direccionamiento directo.............................................................................................150
Direccionamiento de registros.....................................................................................151
Direccionamiento indirecto..........................................................................................151
Indexacin....................................................................................................................152
Direccionamiento por medio de pilas..........................................................................153
Notacin polaca inversa...........................................................................................155
Evaluacin de frmulas en la notacin polaca inversa............................................157
Algoritmo.............................................................................................................157
Algoritmo.............................................................................................................157
Ejemplos de direccionamiento.....................................................................................160
Direccionamiento en la PDP-11..............................................................................160
Tipos de Instrucciones ........................................................................................................160
Instrucciones de movimiento de datos ............................................................................161
Operaciones binarias .......................................................................................................161
Operaciones unarias ........................................................................................................162
Comparaciones y Saltos Condicionales...........................................................................164
Instrucciones de llamada a procedimiento ......................................................................166
Control de iteraciones .....................................................................................................167
Entrada / salida ................................................................................................................168
Flujo De Control .................................................................................................................173
Flujo de control secuencial y saltos ................................................................................173
Procedimientos ................................................................................................................174
191

Corrutinas ........................................................................................................................179
Desvios ............................................................................................................................182
Interrupciones .................................................................................................................183
ACCIONES DE HARDWARE ..................................................................................183
ACCIONES DE SOFTWARE ...................................................................................184
CONCLUSIN......................................................................................................................187
BOLILLA III: ARQUITECTURA DEL PROCESADOR.......................................................188
INDICE...................................................................................................................................189
INTRODUCCIN.................................................................................................................196
ARQUITECTURA DEL PROCESADOR..........................................................................197
ESTRUCTURA GENERAL...............................................................................................197
DESCRIPCIN DE LOS COMPONENTES DE UN PROCESADOR ............................197
Microprocesadores...............................................................................................................200
EJECUCIN DE LAS INSTRUCCIONES .......................................................................201
ORGANIZACIN DE LA CPU ........................................................................................202
LA UNIDAD ARITMTICA Y LGICA .........................................................................204
LA UNIDAD DE CONTROL.............................................................................................206
FASE DE BSQUEDA DE LA INSTRUCCIN .............................................................207
FASE DE BSQUEDA O ALMACENAMIENTO DEL OPERANDO ...........................207
Caso de bsqueda del operando, seguido de procesamiento: .........................................207
Caso de almacenamiento del operando: ..........................................................................208
FASE DE PREPARACIN DE LA SIGUIENTE INSTRUCCIN .................................209
INSTRUCCIN DE RUPTURA DE SECUENCIA ..........................................................209
EL CANAL..........................................................................................................................210
LAS UNIDADES PERIFRICAS .....................................................................................211
INTERRUPCIONES ..........................................................................................................211
CONCLUSIN......................................................................................................................214
BOLILLA IV: MEMORIA........................................................................................................215
INDICE...................................................................................................................................216
INTRODUCCIN.................................................................................................................223
MEMoRia ..............................................................................................................................224
DIRECCIONES DE MEMORIA .......................................................................................225
ORDENAMIENTO DE BYTES ........................................................................................226
CDIGOS CORRECTORES DE ERRORES ....................................................................227
CLASIFICACIN Y ORGANIZACIN DE LAS MEMORIAS .....................................227
PARMETROS y CARACTERSTICAS MS IMPORTANTES DE UNA MEMORIA 228
Capacidad.........................................................................................................................228
Formas de acceder a las posiciones de memoria ............................................................229
Memorias de acceso aleatorio (RAM = Ramdom Acess Memory) ............................229
Estructura de una RAM semiconductora ................................................................231
Pastillas de memoria en paralelo ........................................................................233
Memorias pasivas....................................................................................................235
Memorias de acceso serie ...........................................................................................236
Memorias asociativas ..................................................................................................238
MODOS DE DIRECCIONAMIENTO ..........................................................................239
Modo de direccionamiento directo .............................................................................239
192

Modo de direccionamiento indirecto ..........................................................................240


Modo de direccionamiento relativo ............................................................................240
Modo de direccionamiento indexado ..........................................................................242
Modo de direccionamiento por registro indirecto .......................................................243
Otros modos de direccionamiento ..............................................................................244
CONCLUSIN......................................................................................................................245
................................................................................................................................................246
BOLILLA V: EL NIVEL DEL LENGUAJE ENSAMBLADOR.............................................246
INDICE...................................................................................................................................247
INTRODUCCIN.................................................................................................................254
EL NIVEL DEL LENGUAJE ENSAMBLADOR..............................................................255
INTRODUCCIN AL LENGUAJE ENSAMBLADOR ...................................................256
Qu es un lenguaje ensamblador? .................................................................................256
Formato de una sentencia en lenguaje ensamblador .......................................................257
Comparacin entre el. lenguaje ensamblador y los lenguajes de alto nivel ...................258
Afinacin de programas ..................................................................................................259
EL PROCESO DE ENSAMBLAJE ...................................................................................261
Ensambladores de dos pasadas .......................................................................................261
La primera pasada ...........................................................................................................262
La segunda pasada ..........................................................................................................266
La tabla de smbolos .......................................................................................................267
MACrOS .............................................................................................................................269
Definicin, llamada y expansin de una macro ..............................................................269
Macros con parmetros ...................................................................................................271
Implementacin de macros en un ensamblador ..............................................................271
MONTAJE (LINKING) y CARGA ...................................................................................272
Tareas realizadas por el programa ensamblador .............................................................274
Estructura de un mdulo objeto ......................................................................................276
Tiempo de ligadura y reubicacin dinmica ...................................................................277
Enlace dinmico ..............................................................................................................279
CONCLUSIN......................................................................................................................282
BOLILLA VI (Parte 1): PERIFRICOS.................................................................................283
INDICE...................................................................................................................................284
INTRODUCCIN.................................................................................................................291
PERIFRICOS......................................................................................................................292
RESEA HISTRICA.......................................................................................................292
INTRODUCCIN ...............................................................................................................292
PERlFERICOS DE ENTRADA: ........................................................................................293
TECLADO: .....................................................................................................................293
Cuidados y advertencias..............................................................................................294
MOUSE (RATON) .........................................................................................................295
Tipos de ratones...........................................................................................................296
Ratones Inalmbricos. .............................................................................................296
Ratones Estacionarios..............................................................................................296
PANTALLAS TCTILES: ............................................................................................296

193

BOLAS GIRATORIAS: .................................................................................................296


ESCANER ......................................................................................................................296
Profundidad de color....................................................................................................296
Tipos de escner:.........................................................................................................297
Escner de mano: ....................................................................................................297
Ventaja: ...............................................................................................................297
Desventajas: ........................................................................................................297
Escner de Sobremesa: ...........................................................................................297
Ventajas: .............................................................................................................297
Desventajas: ........................................................................................................297
Escner de Rodillo:..................................................................................................297
Calibracin...................................................................................................................297
LECTORES DE CODIGO DE BARRA.....................................................................297
TABLETA DIGITALIZADORA....................................................................................298
LECTORES DE TARJETAS MAGNETICAS...............................................................298
LAPIZ OPTICO: ............................................................................................................298
PERIFERICOS DE ALMACENAMIENTO: .................................................................299
Discos...........................................................................................................................299
Discos flexibles............................................................................................................299
Fiabilidad del soporte. .............................................................................................300
Facilidad de manejo y almacenamiento. .................................................................300
1. Disco flexible de 5 1/4 pulgadas .....................................................................300
2. Disco flexible de 3 1/2pulgadas ......................................................................300
Disco duro....................................................................................................................300
Discos opticos: ............................................................................................................301
Cintas magneticas: ......................................................................................................302
DVD:............................................................................................................................302
Prestaciones del DVD: ............................................................................................303
El disco por dentro: .................................................................................................303
La compresin MPEG-2: ........................................................................................303
El futuro del DVD: .................................................................................................303
PERIFERICOS DE SALIDA: ............................................................................................304
PANTALLAS DE SISTEMAINFORMATICO (Monitor): ...........................................304
Impresoras........................................................................................................................305
Impresoras con cinta entintada: ..................................................................................305
Impresora de Bola: ..................................................................................................305
Impresoras de agujas: ..............................................................................................306
Impresoras sin cinta entintadas: ..................................................................................306
Impresoras trmicas: ...............................................................................................306
Impresoras de inyeccin de tinta: ...........................................................................306
Impresoras lser: .....................................................................................................306
Impresoras Lser de color: ......................................................................................306
PERIFERICOS DE COMUNICACION.. ..........................................................................307
MODEM..........................................................................................................................307
Aspectos tcnicos.........................................................................................................307
Como usar la Tecnologa 56K ................................................................................307
CONCLUSIN....................................................................................................................308
CONCLUSIN......................................................................................................................309
BOLILLA VI (PARTE 2): TCNICAS Y DISPOSITIVOS DE ENTRADA SALIDA...........310

194

INDICE...................................................................................................................................311
INTRODUCCIN.................................................................................................................318
TECNICAS Y DISPOSITIVOS DE ENTRADA / SALIDA (Input / Ouput)..................319
Dispositivos de fichas y de banda perforada.......................................................................319
Dispositivos de soporte magntico......................................................................................323
Impresoras............................................................................................................................323
Plotter...................................................................................................................................330
La pantalla............................................................................................................................331
Terminales...........................................................................................................................332
Procesos de comunicacin para la transmisin de datos a distancia...................................334
Otros perifricos..................................................................................................................334
Tcnicas de entrada/salida (input/output)............................................................................335
Polling (interrogatorio de trfico) ...................................................................................336
Interrupciones (interrupts) ..............................................................................................338
Transferencia DMA ........................................................................................................339
GLOSARIO.........................................................................................................................340
CONCLUSIN......................................................................................................................342
CONCLUSIN FINAL..............................................................................................................343
BIBLIOGRAFA .......................................................................................................................344

195

INTRODUCCIN

196

APUNTES DE CATEDRA
CARRERA:
Ctedra:
Profesor:
AO:

LICENCIATURA EN ANALISIS DE SISTEMAS


INGENIERIA EN SISTEMAS
Procesamiento De Datos I
Lic. Marcelo Martinez
2003

ARQUITECTURA DEL PROCESADOR


ESTRUCTURA GENERAL

Una computadora digital es un sistema de procesadores, memorias y dispositivos de


entrada / salida interconectados. Veremos aqu estos componentes y su interconexin.
Procesadores, memorias y dispositivos de entrada / salida son conceptos claves por lo que
iniciaremos el estudio de la arquitectura del procesador analizando cada uno de ellos.

DESCRIPCIN DE LOS COMPONENTES DE UN PROCESADOR


En una visin muy general un ordenador lo podemos asimilar a la siguiente situacin.
Supongamos una oficina donde tenemos un "Seor" sentado frente a un escritorio en donde
tiene una calculadora una cierta cantidad de papeles en blanco donde escribir datos y un
contador que le indica el nmero de la casilla que deber leer a continuacin. A su espalda
tiene una serie de casilleros numerados en donde puede guardar o sacar informacin y un
lugar preciso tiene una determinada cantidad de tarjetas en donde estn escritas
instrucciones. Adems, en la pared hay un reloj donde se le indica el tiempo que tiene para
resolver cada instruccin.
Por otro lado, tambin tiene a cada lado un canasto, el de su derecha es donde se le
introducen datos, requerimientos instrucciones y el de su izquierda es donde el entrega
datos o respuestas a los requerimientos. Esto se puede apreciar en la siguiente figura
(Figura 1).

197

Es importante destacar, que este "Seor'" no sabe hacer nada si no se le indica por
medio de las tarjetas con instrucciones. Veamos como funciona el sistema:
1El "Seor, que llamaremos Unidad de Control, observa el nmero que le
indica el contador de su escritorio. y se va a la casilla indicada, previo a sumar uno
al contador.
2El "Seor", toma la tarjeta de la casilla indicada por el contador.
3Copia el contenido de esa casilla en un papel en blanco, e interpreta lo que
all se le dice. Vamos a suponer que en esa instruccin se le pide que sume dos
nmeros "A" y "6" y que estn en las casillas de las cuales se les da el nmero, y
que el resultado "R" lo guarde en otra casilla de la que tambin se le indica su
nmero.
4El "Seor" Unidad de Control, va ala casilla en donde se le dice que est
guardado "A" y saca su contenido, que copia en uno de los papeles en blanco que
tiene sobre su escritorio.
5Luego va al nmero de casilla donde se le dice que tiene "B" y realiza la
misma operacin, copiando el contenido en otro papel en blanco.
6Toma la calculadora e ingresa "A" y "B" y los suma.
7Al resultado "R", lo guarda en el nmero de casilla que se le indico.
8Una vez que realiz todo lo anterior, y como ha terminado lo que se le
indicaba. se fija en el contador que tiene en la mesa y se examina a que nmero
debe ir a buscar la prxima tarjeta.
9Va realizando los pasos 1 a 7 hasta que encuentra una tarjeta que le dice que
se terminaron las instrucciones. En este caso entrega los resultados en el canasto
de su izquierda para que otro pueda interpretarlos, y se queda esperando que se le
introduzcan por su derecha nuevas instrucciones.
Ahora que sabemos como funciona el "Seor 11 y todo su entorno, veamos como
relacionamos, por analoga, con las partes constitutivas de una computadora y su
funcionamiento.
En una visin general, un ordenador se compone de una Unidad Central de Proceso
(CPU), en la que tenemos una Unidad de control (el "Seor"), una Unidad Aritmtica y
Lgica (la calculadora) los Registros Internos (los papeles en blanco sobre el escritorio) y
una Memoria (el casillero a su espalda). Por otro lado tenemos, las Interfaces y Unidades de

198

Entrada / Salida (los canastos a ambos lados). El reloj sobre la pared sirve como elemento
de sincronizacin entre todas las partes del sistema.
En el casillero (memoria) podemos encontrar dos clases de informacin, por un lado
las tarjetas con ordenes acomodadas secuencialmente ("Instrucciones de un programa") y
por otro lado los datos. a menudo llamados operandos, con los cuales la mquina efectuar
los tratamientos indicados por las instrucciones.
Dentro de la Unidad Central de Proceso (CPU), tenemos dos unidades muy
importantes de la mquina, que tienen correspondencia con las dos clases de informacin
almacenadas. Una es la llamada "Unidad de Control", o tambin llamada "Unidad de
Instrucciones'" para las instrucciones del programa, y la segunda, es la "Unidad Aritmtica y
Lgica", la que realiza operaciones aritmticas sobre los datos, tales como sumar, restar,
etc., u operaciones lgicas tales como comparar, o analizar si el contenido de los datos son
verdaderos o falsos de acuerdo a la instruccin, etc.
La figura 2 muestra esquemticamente como pueden resumirse las principales
funciones de la CPU.

La Unidad de Control, que contiene el "Contador de Programa" y el "Registro de


Instruccin", extrae de la memoria, en la direccin indicada por el Contador de Programa, la
nueva instruccin a ejecutar y la copia en el Registro de 'Instruccin, el que tiene el
siguiente formato:
En donde el "CDIGO DE OPERACIN" indica que tipo de operacin deber realizar, y
las direcciones de los operandos y del resultado, indica donde ir a buscar los operandos y
donde guardar el resultado respectivamente.
Una vez que ha decodificado (interpretado) el tipo de operacin a realizar, busca los
operandos y los copia en los registros internos de la "Unidad Aritmtica y Lgica" (ALU)
para que esta realice la operacin indicada en el "Cdigo de Operacin".
Tal como se ha indicado hasta aqu, la mquina puede ejecutar un programa
inicialmente registrado en la memoria central, sobre datos registrados en la memoria
central y almacenar los resultados en la memoria central a medida que son obtenidos.
Ahora es necesaria dotarla de medios para comunicarse con el exterior; este es el
papel reservado a las Unidades Perifricas.
Existen dos grandes clases de unidades perifricas: "Las Unidades de Comunicacin"
(lectoras de tarjetas, impresoras, unidades de visualizacin de rayos catdicos, teclados,
etc), que permiten el dialogo con el exterior; y las "Memorias Auxiliares" "Unidades de

199

Almacenamiento Secundario" (discos magnticos. Disquetes, cintas magnticas, etc), cuyas


capacidades de almacenamiento son muy superiores a las de una memoria principal.
Estas Unidades Perifricas se conectan a la memoria central directamente a travs de
unidades especializadas en la gestin de transferencia de informacin. Estas "Unidades de
Transferencia de Informacin", se ocupan de gobernar los canales o buses.
En resumen podemos representar un ordenador como un conjunto ensamblado de
diferentes unidades, cuyo funcionamiento est regido por un programa registrado en la
memoria principal. La Unidad de Control gobierna la ejecucin de las operaciones pedidas
por el programa. Si la operacin es un clculo, es la Unidad Aritmtica y Lgica quien lo
realiza, al igual que si se debiera efectuar una comparacin lgica y tomar una decisin. Si
es una transferencia de informacin con el exterior, se cede el control aun canal. Figura 3

MICROPROCESADORES
En la Figura 4 se puede apreciar la organizacin de una microcomputadora con un
solo bus o canal. La Unidad Central de Procesamiento (CPU) es el "cerebro" de la
computadora. Su funcin es ejecutar programas almacenados en la memoria central
tomando las instrucciones examinndolas y luego ejecutndolas una a continuacin de otra.

200

La CPU se compone de varias partes. La Unidad de Control, se encarga de traer las


instrucciones de la memoria principal y determinar su tipo. La Unidad Aritmtica y Lgica
que realiza operaciones como la suma o la funcin booleana ANO, necesarias para llevar a
cabo las instrucciones.
La CPU tambin contiene una pequea memoria de alta velocidad utilizada para
almacenar los resultados intermedios y cierta informacin de control. Esta memoria consta
de varios registros, cada uno de los cuales tiene cierta funcin.
El registro ms importante es el "Contador de Programa" (PC = Program Counter),
que indica la direccin de la prxima instruccin que debe ejecutarse. El nombre de
"Contador de Programa" a veces confunde ya que no cuenta nada, pero su uso es muy
difundido.
Otro registro muy importante es el "Registro de Instruccin", que contiene la
instruccin que se est ejecutando. No obstante, la mayora de las computadoras tienen
otros registros, algunos de los cuales son accesibles a los programadores.

EJECUCIN DE LAS INSTRUCCIONES


En la CPU se ejecutan instrucciones en una serie de pequeos pasos:
1- Extrae de la memoria la siguiente instruccin y la lleva al registro de instruccin.
2- Cambia el Contador de Programa de modo que seale la siguiente instruccin.
3- Determina el tipo de instruccin que acaba de extraer.
4- Verifica si la instruccin requiere datos de la memoria y, si es as, determina donde
estn situados.
5- Extrae los datos, si los hay, y los carga en los registros internos de la CPU.
6- Ejecuta la instruccin.
7- Almacena los resultados en el lugar apropiado.
8- Vuelve al punto 1 para empezar: la ejecucin de la instruccin siguiente.
A esta secuencia de pasos se la denomina ciclo de mquina y es la forma bsica de
operacin de toda computadora.
Esta descripcin de como funciona la CPU se parece mucho a un programa. El hecho
de que sea posible escribir un programa que imite el funcionamiento de la CPU demuestra
que no es necesario que un programa sea ejecutado por una CPU "fsica... es decir, un
dispositivo compuesto de elementos electrnicos, sino que puede utilizarse otro programa

201

que extraiga, examine y ejecute las instrucciones.


Un programa que rea liza esto se llama II intrprete". Esta equivalencia entre el
intrprete y los procesadores fsicos es muy importante en la organizacin de las
computadoras. Despus de haber especificado un lenguaje de mquina "L" para una
determinada computadora, el equipo de diseo puede decidir si quiere construir un
procesador fsico para ejecutar programas en "L" o si prefiere escribir un intrprete en su
lugar que realice la misma funcin.
Dado que un intrprete se divide en pasos pequeos las instrucciones que ejecuta. la
mquina en la que funciona puede ser mucho ms simple y por lo tanto, menos cara de lo
que costara un procesador de hardware para la mquina. Por estas razones, los programas
en computadoras modernas, al nivel de mquina convencional, son ejecutados por un
intrprete que corre en una mquina mucho ms primitiva y al que se llama "nivel de
microprogramacin".
El conjunto de todas las instrucciones que tiene a su disposicin un programador en
un nivel se denomina "conjunto de instrucciones". La cantidad de instrucciones vara de una
mquina a otra y de nivel en nivel. Por ejemplo, para el nivel de mquina convencional, el
conjunto suele tener de 20 a 300 instrucciones. Un conjunto de instrucciones grandes no
tiene por que ser mejor que uno pequeo. De hecho suele ocurrir lo contrario. Un conjunto
de instrucciones grandes indica, a menudo, que las instrucciones no son muy generales. Los
compiladores para alto nivel como Ada, Pascal, etc, se desempean mejor en mquinas con
conjuntos de instrucciones reducidos y bien definidos. A las mquinas con conjuntos de
instrucciones muy reducidos se las denomina "RISC" (Reduced Instruction Set Computer).
Este tipo de mquinas no utiliza microprogramacin y son muy rpidas. A las mquinas con
conjuntos de instrucciones normales o extendidos se las llama "CISC"(Completed
Instruction Set Computer).

ORGANIZACIN DE LA CPU
La organizacin interna de una parte clsica de la CPU se debe al diseo de "Von
Neumann", y se muestra en la Figura 5. A esta parte se la denomina la "trayectoria de los
datos", y consiste en los registros (normalmente de 1 a 16) y en la ALU (Unidad AritmticaLgica). Dichos registros alimentan dos entradas a la ALU (A y B en la figura). los cuales
retienen informacin mientras la ALU realiza sus clculos.

202

La Unidad Aritmtica y Lgica realiza sumas, restas y otras operaciones sencillas sobre
el contenido de los registros de entrada, colocando el resultado en el registro de salida, el
cual a su vez puede ser almacenado en la memoria.
Las instrucciones pueden dividirse en tres categoras:
De registro a memoria.
De registro a registro.
De memoria a memoria.
Las instrucciones de registro a memoria permiten que una palabra de memoria sea
extrada a los registros, donde pueden ser usadas como entradas para la ALU en
instrucciones subsecuentes.
Una instruccin tpica de registro a registro extrae dos operandos de los registros, los
lleva a los registros de entrada de la ALU, lleva a cabo alguna operacin con ellos y
almacena el resultado en otro registro.
Una instruccin de memoria a memoria extrae sus operandos de la memoria y lleva
estos a los registros de entrada de la ALU, donde realiza su operacin y escribe el resultado
en la memoria.
La operacin de flujo de datos es el corazn de la mayora de las CPU y define en gran
parte lo que una mquina es capaz de hacer.

203

LA UNIDAD ARITMTICA Y LGICA


Para pedir al ordenador una operacin matemtica, por, ejemplo una suma, la
instruccin debe facilitarle la siguiente informacin:
La clase de operacin a realizar, en este caso una suma. Este papel lo cumple el
cdigo de operacin.
La direccin de la clula de memoria que contiene el primer dato, o primer operando.
La direccin de la clula de memoria que contiene el segundo dato, o segundo
operando.
La direccin de la clula de memoria donde debe almacenarse el resultado.
De aqu se deduce la forma de la instruccin, que contiene un cdigo y tres
direcciones:
CDIGO DE
OPERACIN

DIRECCIN
1
OPERANDO

DIRECCIN
2
OPERANDO

DIRECCIN
DEL
RESULTADO

La figura 6 representa la Unidad Aritmtica y Lgica capaz de ejecutar esta


operacin, la cual est rodeada de tres registros donde de memorizan los dos operandos y
el resultado.

La instruccin de suma necesita cuatro accesos a la memoria central, que permiten


sucesivamente buscar la instruccin, despus el primer operando, luego el segundo
operando y, por ltimo, almacenar el resultado. A las mquinas que utilizan este tipo de
instruccin se las llama de tres direcciones.
Existen otras mquinas llamadas de una direccin. Su Unidad Aritmtica y Lgica
posee un registro partivular, denominado acumulador, que sirve tanto para albergar el
primer operando como el resultado. Esta caracterstica permite intrucciones de una sola
direccin: la del segundo operando.
La operacin de suma necesita tres instrucciones para:
1- Cargar el primer operando en el acumulador.
2- Sumar el segundo operando con el contenido del acumulador.
3- Almacenar en memoria el contenido del cacumulador.

204

Cada una de setas tres instrucciones comportar un cdigo de operacin y una


direccin.
CDIGO DE
OPERACIN
Carga
Adicin
Almacenamiento

DIRECCIN
Direccin 1 operando
Direccin 2 operando
Direccin resultado

La Unidad Aritmtica y Lgica est esquematizada en al figura 7, donde el


acumulador sustituye a los registros R1, R2 de la figura anterior.

El segundo operando puede almacenarse durante la operacin en el Registro de


Palabra asociado a la memoria. Este es el caso de la computadora conocida como
"Abacus".

205

LA UNIDAD DE CONTROL
Es la unidad que extrae y analiza las instrucciones de la memoria central. Para ello
necesita dos registros:
1- Uno llamado "Contador de Instrucciones", "Contador Ordinal" Contador
de Programa (PC = Program Counter), que contiene la direccin de la prxima
instruccin a ejecutar. Su nombre se debe a que, exceptuado las rupturas de
secuencia, este registro va aumentando su contenido en una unidad para pasar a la
siguiente instruccin.
2- Un registro llamado Registro de Instruccin, que contiene la ltima
instruccin extrada de la memoria. Si bien existen distintos diseos para este
registro, vamos a ver el Registro de Instruccin de Abacus, que es la arquitectura
que estamos analizando y que es la que est ms difundida. Este Registro de
Instruccin se divide en dos partes:
a) Una parte que est conformada por el Cdigo de Operacin, que define el tipo
de instruccin a ejecutar (suma, multiplicacin, salto, etc.).
b) Otra parte que contiene la/s Direccin/es del/os, operando/s.
La unidad de control contiene adems un rgano generador de secuencias llamado
Secuenciador, el que tras analizar el cdigo de operacin, distribuye las ordenes al
conjunto de unidades del ordenador, tales como la Memoria, Unidad Aritmtica y Lgica,
etc., a fin de hacerles ejecutar las distintas fases de la instruccin. Esto puede verse en la
Figura 8.

El desarrollo de una instruccin de procesamiento en un computador de una direccin,


puede descomponerse en tres fases:
1- Bsqueda y anlisis de la instruccin.
2- Bsqueda y procesamiento del operando o bien, almacenamiento del operando.
3- Preparacin de la siguiente instruccin.

206

FASE DE BSQUEDA DE LA INSTRUCCIN


La Unidad de Control ordena la transferencia del contenido del Contador de Programa
(es decir la direccin de la instruccin por ejecutar) al Registro de Seleccin, y enva a la
memoria una orden de lectura. Una vez terminada esta operacin de lectura, la instruccin
queda disponible en el Registro de Palabra. Entonces, la Unidad de control ordena la
transferencia del contenido de este registro al Registro de Instruccin.
Los circuitos especializados de la Unidad de Control pueden entonces analiza el Cdigo
de Operacin de la instruccin. Esta primera fase es comn a todos los tipos de
instrucciones. Tal como indica la Figura 9.

FASE DE BSQUEDA O ALMACENAMIENTO DEL OPERANDO


Caso de bsqueda del operando, seguido de procesamiento:
Una vez analizado el cdigo de operacin de la instruccin, la unidad de control sabe
que se trata de una instruccin de procesamiento, con bsqueda previa del operando. La
direccin del operando se encuentra en la zona de direccin del Registro de Instruccin. La
Unidad de Control ordena su transferencia al Registro de Seleccin de memoria y acto
seguido ordena una operacin de lectura en la memoria. Al finalizar dicha operacin, el
operando buscado queda disponible en el Registro de Palabra. La Unidad de Control
posiciona los circuitos de la Unidad Aritmtica y Lgica para realizar el procesamiento
solicitado por el cdigo de operacin y ordena la transferencia del operando a la Unidad
Aritmtica y lgica. El resultado del procesamiento del operando queda almacenado en el
Acumulador.
Obsrvese que un posible procesamiento puede ser simplemente una transferencia del
operando al acumulador. Figura 10.

207

Caso de almacenamiento del operando:


La direccin de almacenamiento del operando se encuentra en la zona de direccin del
Registro de Instruccin. La Unidad de Control ordena su transferencia al Registro de
Seleccin de la memoria. El operando a almacenar est en el Acumulador. La Unidad de
Control ordena su transferencia al Registro de Palabra. Acto seguido completa la ejecucin
ordenando a la memoria una operacin de escritura. Figura 11.

208

FASE DE PREPARACIN DE LA SIGUIENTE INSTRUCCIN


Consiste en aumentar una unidad (a menudo se dice incrementar en uno) el contenido
del Contador de Programa, de manera que contenga la direccin de la siguiente instruccin..

INSTRUCCIN DE RUPTURA DE SECUENCIA


Este tipo de instruccin, tambin llamado instruccin de bifurcado o de salto, permite
modificar el desarrollo secuencial del programa, haciendo que la instruccin de salto sea
seguida, no por la instruccin almacenada en la siguiente direccin de memoria, sino por
una instruccin cuya direccin viene suministrada por la propia instruccin de salto.
El salto puede ser condicional, o sea que este no tendr efecto si no se satisface una
determinada condicin, normalmente relacionada con el contenido del acumulador, en caso
de no cumplirse esta condicin, el programa continuar en secuencia.
El Cdigo de Operacin define la condicin y la Direccin indica el emplazamiento de la
prxima instruccin por ejecutar en caso de satisfacerse la condicin. Esto puede verse en
la figura 12.

Si la respuesta de la Unidad Aritmtica y Lgica es que la condicin ha sido satisfecha,


la Unidad de Control ordena la transferencia de la direccin al Contador de Programa e
inhibe la suma, de una unidad a este contador, en caso contrario ordena incrementar en
uno al Contador de Programa.

209

EL CANAL
Es un dispositivo que es capaz, en general, de gestionar la transferencia, tanto en un
sentido como en otro, de un conjunto de informacin entre las Unidades Perifricas y la
Memoria Central. En los ordenadores actuales esta transferencia puede operarse
simultneamente con el desarrollo de un programa de clculo. Las informaciones
transferidas se almacenan en memoria en forma secuencial. Para inicializar la transferencia,
instrucciones especiales de entrada/salida deben suministrar al canal lo siguiente:
1. La direccin de la Unidad Perifrica implicada.
2. La direccin para el almacenamiento de la primera informacin.
3. El nmero de informaciones a transferir.
En lo sucesivo el canal se ocupara totalmente de la gestin de la transferencia. Por
cada informacin transferida, sumar uno a la direccin de almacenamiento y restar uno al
nmero de informaciones a transferir. En el momento en que toda la informacin ha sido
transferida, advertir a la Unidad de Control a travs de un mecanismo llamado
Interrupcin. Esto de aprecia en la Figura 13.

210

LAS UNIDADES PERIFRICAS


Se distinguen dos grandes clases de Unidades Perifricas:
1- Las memorias auxiliares: que sirven de soporte de almacenamiento de gran
capacidad y de medio de comunicacin con el interior del sistema. Estas unidades
estn compuestas por los discos, disquetes, cintas magnticas, etc.
2- Las unidades de comunicacin: que podemos a su vez dividirlas en:
a) Comunicacin entre el sistema y el medio exterior: que permiten el intercambio
de informacin sobre soportes generados o ledos por el hombre, como pueden
ser las mquinas lectoras o perforadoras de cintas o tarjetas perforadoras, las
impresoras, etc.
b) Unidades para el dilogo entre el hombre y el computador: tales como las
mquinas de escribir, unidades de visualizacin, teclado y monitores de
terminales, etc.
c) Las unidades para intercambio de informacin a distancia: como por ejemplo las
lneas de comunicacin, las redes de computadoras, las terminales, otros
computadores, etc.
d) Las unidades para el intercambio de informacin a travs de dispositivos que
aceptan o suministran datos analgicos: tales como modems, conversores
analgicos / digitales, etc.
La mayora de las unidades constan de dos partes:
1- Una parte electrnica, llamada Controlador o Unidad de Control de Perifricos.
2- Una unidad electromecnica que, gobernada por 1a primera, lee o escribe datos en
los dispositivos perifricos.

INTERRUPCIONES
Las " Interrupciones" son ordenes que proceden del exterior y que piden al ordenador
ejecutar un programa asociado a la orden. El programa en curso se ve interrumpido para
permitir la ejecucin del programa solicitado por la interrupcin, considerado ahora como
prioritario. Terminado este ltimo. se reanuda la ejecucin del programa interrumpido.
Es gracias a las interrupciones, como se le comunica ala Unidad de Control que debe
realizar o ejecutar una tarea. ~ bien para avisarle que algo a sucedido finalizado. como
por ejemplo cuando el canal le avisa que todos los datos solicitados han sido transferidos a
la memoria.
Ms exactamente. el tratamiento de una interrupcin consiste. en general. en
memorizar el estado de la mquina desde el final de la instruccin en curso y forzar
seguidamente en el Contador de Programa la direccin de la primera instruccin del
programa asociado a la interrupcin. Este programa. a su vez. termina en una instruccin
que restaura el estado que tena la mquina al momento de la interrupcin. lo que permite
la reanudacin del programa interrumpido.
Existen dos tipos de interrupciones:
1- Las "Enmascarables": o sea las que pueden ser temporaria- mente ignoradas.
por cuanto no implican un procesamiento o atencin inmediata. El ejemplo anterior
del canal es una de las interrupciones enmascarables.
2- Las "No Enmascarables": que no pueden ignorarse por cuanto deben set
atendidas inmediatamente. Entre estas encontramos las interrupciones por errores.
tanto de Hardware como de Software. los errores lgicos (divisin por cero). etc.
Tambin tenemos las interrupciones que proceden por ordenes del operador, como
por ejemplo la cancelacin de un programa, etc.
Podemos clasificar las interrupciones segn el campo de aplicacin del procedimiento
de interrupcin como por ejemplo:

211

12345-

Interrupcin por errores o averas: falla de la alimentacin elctrica. error de


paridad en memoria. etc.
Interrupcin por causa del programa (o desvo): instruccin o direccin
incorrecta, operaciones imposibles, divisin por cero, desbordamiento de capacidad,
etc.
Interrupcin por entrada / salida: generada por el canal para avisar del fin de
una operacin de entrada / salida de una anomala ocurrida en el transcurso de
una operacin de entrada / salida.
Interrupcin externa: utilizada para avisar a la mquina acerca de cualquier
modificacin interesante del medio exterior, especialmente en control de procesos
industriales.
Interrupcin de recuento: para contar impulsos procedentes de un reloj.

Determinados computadores presentan una sola posibilidad de interrupcin, en cuyo


caso se pasaran todas las causas de interrupcin a travs de una compuerta lgica "OR", y
el programa de interrupcin comienza a comprobar un conjunto de indicadores a fin de
detectar cul es la causa de la misma.
Otros poseen varios niveles de interrupciones. A cada nivel de interrupcin le
corresponde un conductor proveniente de la causa o causas de la interrupcin y tambin de
los programas asociados. Dichos niveles pueden estar jerarquizados, lo que significa que
estn clasificados por orden de las prioridades respectivas, y que un programa de
interrupcin puede a su vez ser interrumpido por una demanda de interrupcin clasificada
en un nivel superior de prioridad. El programa interrumpido pasa entonces al estado de
espera.
Los pequeos ordenadores, especializados en la gua de procesos, poseen
frecuentemente sistemas de interrupcin bastante elaborados. En general, presentan varias
caractersticas del tipo siguiente de organizacin modular:
Las interrupciones estn agrupadas en cierto nmero de niveles jerrquicos, o sea,
cada uno de ellos posee una prioridad diferente. Un programa de un determinado
nivel de prioridad puede verse interrumpido por un programa solicitado por una
interrupcin de nivel superior.
Un nivel agrupa varios subniveles, cada cual con su conductor de interrupcin y su
prioridad dentro del nivel. Los programas asociados a los subniveles de un mismo
nivel no pueden interrumpirse mutuamente, siendo nicamente efectiva su
prioridad en caso de eleccin entre varios de ellos, si se encontrasen
simultneamente en estado de espera.
Un subnivel agrupa, a su vez, varias demandas de interrupciones, cuyas causas
son investigadas por prueba de los indicadores.
Una interrupcin puede encontrarse en varios estados a saber:
1- Estado desactivado: el nivel no acepta ninguna demanda de interrupcin. Un
nivel puede ser activado o desactivado por el programa.
2- Estado de espera: el nivel pasa al estado de espera si recibe una seal de
demanda de interrupcin. Varias razones pueden diferir la consideracin operativa
de la interrupcin. Primeramente, es preferido que el nivel est autorizado, puesto
que se distinguen dos formas de estado de espera:
Estado de espera inhibido: el nivel ha resultado inhibido por programa, de tal
manera que la interrupcin ha podido ser memorizada pero no tomada en cuenta
por el ordenador, tambin se suele decir que el nivel ha sido enmascarado.
Estado de espera autorizado: la interrupcin puede ser tomada en cuenta por el
ordenador, si se han satisfecho las siguientes condiciones:
a-

No existe ningn nivel de prioridad superior en el estado autorizado de


espera.

212

b-

La unidad central se encuentra en una fase ininte- rrumpible (generalmente


en final de instruccin).

2- Estado activo: implica que la unidad central tome en cuenta la interrupcin y se


mantiene durante toda la ejecucin del programa de interrupcin.
A cada nivel de interrupcin se asocian dos seales: una impulsiva. procedente del
exterior, para pedir la interrupcin, y otra de larga duracin que el calculador deja activada
hasta tanto no se haya tratado la interrupcin, es decir, hasta que el nivel sea capaz de
aceptar una nueva demanda de interrupcin.
A cada nivel de interrupcin se asocia un conjunto de posiciones de memoria,
divididas en dos partes: la primera contiene toda la informacin necesaria para el arranque
del programa de interrupcin (en especial la direccin de la primera instruccin). La
segunda sirve para almacenar la informacin que caracterizan al estado del programa en el
instante de la interrupcin, para su posterior reanudacin (estado de los diferentes
indicadores. Contador de Programa, enventualmente los registros de base. etc).
El paso de una interrupcin al estado activo consiste en memorizar el estado del
programa, almacenando la informacin pertinente en las posiciones asociadas de memoria
para instaurar despus un nuevo estado del programa.
La ltima instruccin de un programa de interrupcin es una muy especial, cuya
finalidad es la de restaurar el estado del programa en el momento de la interrupcin,
rescatando las posiciones asociadas de memoria. Adems desactiva el nivel de interrupcin,
lo que permite responder a otra posible seal de interrupcin.

213

CONCLUSIN

214

BOLILLA IV: MEMORIA

215

INDICE
INDICE GENERAL............................................................................................1
BOLILLA I: LA COMPUTADORA..............................................................................................4
INDICE.......................................................................................................................................5
INTRODUCCIN...................................................................................................................12
LA COMPUTADORA............................................................................................................13
CONCEPTO:.........................................................................................................................13
FUNCIONES Y ACCIONES:...............................................................................................13
Para qu sirve una computadora?:.........................................................................................13
Computadora y Circuitos:......................................................................................................14
HARDWARE Y SOFTWARE: ............................................................................................14
Software: ...........................................................................................................................14
Al software se lo clasifica en dos grupos: .....................................................................14
Hardware:...........................................................................................................................15
Arquitectura - Componentes Bsicos:...................................................................................15
Unidad de Control:.............................................................................................................15
Unidad aritmtico-lgica:..................................................................................................15
Memoria:(Memoria Central)..............................................................................................15
Perifricos: ........................................................................................................................15
Ncleo de la computadora: ...............................................................................................15
BUSES DE COMPUTADORAS:.........................................................................................16
Buses sncronos y asncronos: ..............................................................................................18
Arbitraje del bus:...............................................................................................................19
Ejemplo de encadenamiento margarita:.............................................................................19
Solicitud del Bus............................................................................................................19
Dispositivos de E/S............................................................................................................19
Manejo de interrupciones:.................................................................................................20
Canales de e/s.........................................................................................................................20
TECNOLOGA DE CANALES:.......................................................................................21
TIPOS DE CANALES:.....................................................................................................21
Multiplexor: ..................................................................................................................21
Selector..........................................................................................................................22
Multipexor por bloques: ................................................................................................22
Spoll: .........................................................................................................................22
SISTEMA OPERATIVO.......................................................................................................23
Introduccin: ....................................................................................................................23
QU ES UN SISTEMA OPERATIVO?.........................................................................24
CONCLUSIN........................................................................................................................25
BOLILLA II (Parte 1): EL NIVEL DE LOGICA DIGITAL.....................................................26
INDICE.....................................................................................................................................27
INTRODUCCIN...................................................................................................................34
EL NIVEL DE LOGICA DIGITAL......................................................................................35
COMPUERTAS Y ALGEBRA BOOLEANA......................................................................35
Compuertas........................................................................................................................35
216

Algebra booleana...............................................................................................................37
Implementacin de funciones booleanas ..........................................................................38
Equivalencia entre circuitos...............................................................................................40
CIRCUITOS DIGITALES BSICOS..................................................................................44
Circuitos integrados ..........................................................................................................44
Circuitos combinacionales ................................................................................................47
Multiplexores ................................................................................................................47
Decodificadores ............................................................................................................49
Comparadores ...............................................................................................................51
Arreglos (matrices) lgicos programables ....................................................................51
Circuitos aritmticos..........................................................................................................53
Registros de corrimiento................................................................................................53
Sumadores .....................................................................................................................54
Unidades aritmticas y lgicas......................................................................................55
Relojes ..............................................................................................................................55
MEMORIA............................................................................................................................57
Biestables...........................................................................................................................57
Bieslables SR sincronizados..........................................................................................59
Biestables D sincronizados............................................................................................59
Flip-flops y registros..........................................................................................................59
Registros........................................................................................................................60
Organizacin de las memorias...........................................................................................61
Propiedades de las memorias.............................................................................................64
MICROPROCESADORES y BUSES...................................................................................66
Microprocesadores ............................................................................................................66
Buses de computadora.......................................................................................................68
Buses sncronos .................................................................................................................70
BUSES ASINCRONOS....................................................................................................73
Arbitraje del bus ................................................................................................................74
Manejo de interrupciones ..................................................................................................77
CONCLUSIN........................................................................................................................79
BOLILLA II (Parte 2): EL NIVEL DE MICROPROGRAMACIN.......................................80
INDICE.....................................................................................................................................81
INTRODUCCIN...................................................................................................................88
EL NIVEL DE MICROPROGRAMACIN .......................................................................89
REPASO SOBRE EL NIVEL DE LGICA DIGITAL .......................................................90
Registros ..........................................................................................................................90
Buses .................................................................................................................................90
Multiplexores y decodificadores .......................................................................................92
Unidades aritmticas y lgicas y registros de corrimiento ...............................................92
Relojes ..............................................................................................................................93
Memoria principal .............................................................................................................94
Encapsulado de los componentes .....................................................................................95
UNA MICROARQUITECTURA TIPICA ...........................................................................96
La ruta de datos .................................................................................................................96
Microinstrucciones ............................................................................................................98
Cronologa de las microinstrucciones .............................................................................100
Secuenciamiento de las microinstrucciones ...................................................................102

217

UNA MACROARQUITECTURA TIPICA .......................................................................103


Pilas .................................................................................................................................103
El juego de macroinstrucciones ......................................................................................107
MICROPROGRAMACIN: UN EJEMPLO ....................................................................110
El lenguaje micro ensamblador .......................................................................................110
El ejemplo de microprograma .........................................................................................111
Observaciones sobre el microprograma ..........................................................................113
Perspectivas ....................................................................................................................114
EL DISEO DEL NIVEL DE MICROPROGRAMACIN ............................................115
Microprogramacin horizontal frente a microprogramacin vertical..............................115
Nanoprogramacin ..........................................................................................................122
Mejora del rendimiento ...................................................................................................123
Memoria cach ...............................................................................................................129
CONCLUSIN......................................................................................................................134
................................................................................................................................................135
BOLILLA II (Parte 3): EL NIVEL DE MAQUINA CONVENCIONAL................................135
INDICE...................................................................................................................................136
INTRODUCCIN.................................................................................................................143
EL NIVEL DE MQUINA CONVENCIONAL.................................................................144
EJEMPLOS DEL NIVEL DE MAQUINA CONVENCIONAL........................................144
FORMATOS DE INSTRUCCIN.....................................................................................145
Criterios de diseo de formatos de instruccin................................................................146
Cdigos de operacin con extensin...............................................................................147
Ejemplos de formatos de instrucciones...........................................................................149
La PDP-11...................................................................................................................149
Direccionamiento.............................................................................................................149
Direccionamiento inmediato........................................................................................150
Direccionamiento directo.............................................................................................150
Direccionamiento de registros.....................................................................................151
Direccionamiento indirecto..........................................................................................151
Indexacin....................................................................................................................152
Direccionamiento por medio de pilas..........................................................................153
Notacin polaca inversa...........................................................................................155
Evaluacin de frmulas en la notacin polaca inversa............................................157
Algoritmo.............................................................................................................157
Algoritmo.............................................................................................................157
Ejemplos de direccionamiento.....................................................................................160
Direccionamiento en la PDP-11..............................................................................160
Tipos de Instrucciones ........................................................................................................160
Instrucciones de movimiento de datos ............................................................................161
Operaciones binarias .......................................................................................................161
Operaciones unarias ........................................................................................................162
Comparaciones y Saltos Condicionales...........................................................................164
Instrucciones de llamada a procedimiento ......................................................................166
Control de iteraciones .....................................................................................................167
Entrada / salida ................................................................................................................168
Flujo De Control .................................................................................................................173
Flujo de control secuencial y saltos ................................................................................173
218

Procedimientos ................................................................................................................174
Corrutinas ........................................................................................................................179
Desvios ............................................................................................................................182
Interrupciones .................................................................................................................183
ACCIONES DE HARDWARE ..................................................................................183
ACCIONES DE SOFTWARE ...................................................................................184
CONCLUSIN......................................................................................................................187
BOLILLA III: ARQUITECTURA DEL PROCESADOR.......................................................188
INDICE...................................................................................................................................189
INTRODUCCIN.................................................................................................................196
ARQUITECTURA DEL PROCESADOR..........................................................................197
ESTRUCTURA GENERAL...............................................................................................197
DESCRIPCIN DE LOS COMPONENTES DE UN PROCESADOR ............................197
Microprocesadores...............................................................................................................200
EJECUCIN DE LAS INSTRUCCIONES .......................................................................201
ORGANIZACIN DE LA CPU ........................................................................................202
LA UNIDAD ARITMTICA Y LGICA .........................................................................204
LA UNIDAD DE CONTROL.............................................................................................206
FASE DE BSQUEDA DE LA INSTRUCCIN .............................................................207
FASE DE BSQUEDA O ALMACENAMIENTO DEL OPERANDO ...........................207
Caso de bsqueda del operando, seguido de procesamiento: .........................................207
Caso de almacenamiento del operando: ..........................................................................208
FASE DE PREPARACIN DE LA SIGUIENTE INSTRUCCIN .................................209
INSTRUCCIN DE RUPTURA DE SECUENCIA ..........................................................209
EL CANAL..........................................................................................................................210
LAS UNIDADES PERIFRICAS .....................................................................................211
INTERRUPCIONES ..........................................................................................................211
CONCLUSIN......................................................................................................................214
BOLILLA IV: MEMORIA........................................................................................................215
INDICE...................................................................................................................................216
INTRODUCCIN.................................................................................................................223
MEMoRia ..............................................................................................................................224
DIRECCIONES DE MEMORIA .......................................................................................225
ORDENAMIENTO DE BYTES ........................................................................................226
CDIGOS CORRECTORES DE ERRORES ....................................................................227
CLASIFICACIN Y ORGANIZACIN DE LAS MEMORIAS .....................................227
PARMETROS y CARACTERSTICAS MS IMPORTANTES DE UNA MEMORIA 228
Capacidad.........................................................................................................................228
Formas de acceder a las posiciones de memoria ............................................................229
Memorias de acceso aleatorio (RAM = Ramdom Acess Memory) ............................229
Estructura de una RAM semiconductora ................................................................231
Pastillas de memoria en paralelo ........................................................................233
Memorias pasivas....................................................................................................235
Memorias de acceso serie ...........................................................................................236
Memorias asociativas ..................................................................................................238
MODOS DE DIRECCIONAMIENTO ..........................................................................239
219

Modo de direccionamiento directo .............................................................................239


Modo de direccionamiento indirecto ..........................................................................240
Modo de direccionamiento relativo ............................................................................240
Modo de direccionamiento indexado ..........................................................................242
Modo de direccionamiento por registro indirecto .......................................................243
Otros modos de direccionamiento ..............................................................................244
CONCLUSIN......................................................................................................................245
................................................................................................................................................246
BOLILLA V: EL NIVEL DEL LENGUAJE ENSAMBLADOR.............................................246
INDICE...................................................................................................................................247
INTRODUCCIN.................................................................................................................254
EL NIVEL DEL LENGUAJE ENSAMBLADOR..............................................................255
INTRODUCCIN AL LENGUAJE ENSAMBLADOR ...................................................256
Qu es un lenguaje ensamblador? .................................................................................256
Formato de una sentencia en lenguaje ensamblador .......................................................257
Comparacin entre el. lenguaje ensamblador y los lenguajes de alto nivel ...................258
Afinacin de programas ..................................................................................................259
EL PROCESO DE ENSAMBLAJE ...................................................................................261
Ensambladores de dos pasadas .......................................................................................261
La primera pasada ...........................................................................................................262
La segunda pasada ..........................................................................................................266
La tabla de smbolos .......................................................................................................267
MACrOS .............................................................................................................................269
Definicin, llamada y expansin de una macro ..............................................................269
Macros con parmetros ...................................................................................................271
Implementacin de macros en un ensamblador ..............................................................271
MONTAJE (LINKING) y CARGA ...................................................................................272
Tareas realizadas por el programa ensamblador .............................................................274
Estructura de un mdulo objeto ......................................................................................276
Tiempo de ligadura y reubicacin dinmica ...................................................................277
Enlace dinmico ..............................................................................................................279
CONCLUSIN......................................................................................................................282
BOLILLA VI (Parte 1): PERIFRICOS.................................................................................283
INDICE...................................................................................................................................284
INTRODUCCIN.................................................................................................................291
PERIFRICOS......................................................................................................................292
RESEA HISTRICA.......................................................................................................292
INTRODUCCIN ...............................................................................................................292
PERlFERICOS DE ENTRADA: ........................................................................................293
TECLADO: .....................................................................................................................293
Cuidados y advertencias..............................................................................................294
MOUSE (RATON) .........................................................................................................295
Tipos de ratones...........................................................................................................296
Ratones Inalmbricos. .............................................................................................296
Ratones Estacionarios..............................................................................................296

220

PANTALLAS TCTILES: ............................................................................................296


BOLAS GIRATORIAS: .................................................................................................296
ESCANER ......................................................................................................................296
Profundidad de color....................................................................................................296
Tipos de escner:.........................................................................................................297
Escner de mano: ....................................................................................................297
Ventaja: ...............................................................................................................297
Desventajas: ........................................................................................................297
Escner de Sobremesa: ...........................................................................................297
Ventajas: .............................................................................................................297
Desventajas: ........................................................................................................297
Escner de Rodillo:..................................................................................................297
Calibracin...................................................................................................................297
LECTORES DE CODIGO DE BARRA.....................................................................297
TABLETA DIGITALIZADORA....................................................................................298
LECTORES DE TARJETAS MAGNETICAS...............................................................298
LAPIZ OPTICO: ............................................................................................................298
PERIFERICOS DE ALMACENAMIENTO: .................................................................299
Discos...........................................................................................................................299
Discos flexibles............................................................................................................299
Fiabilidad del soporte. .............................................................................................300
Facilidad de manejo y almacenamiento. .................................................................300
1. Disco flexible de 5 1/4 pulgadas .....................................................................300
2. Disco flexible de 3 1/2pulgadas ......................................................................300
Disco duro....................................................................................................................300
Discos opticos: ............................................................................................................301
Cintas magneticas: ......................................................................................................302
DVD:............................................................................................................................302
Prestaciones del DVD: ............................................................................................303
El disco por dentro: .................................................................................................303
La compresin MPEG-2: ........................................................................................303
El futuro del DVD: .................................................................................................303
PERIFERICOS DE SALIDA: ............................................................................................304
PANTALLAS DE SISTEMAINFORMATICO (Monitor): ...........................................304
Impresoras........................................................................................................................305
Impresoras con cinta entintada: ..................................................................................305
Impresora de Bola: ..................................................................................................305
Impresoras de agujas: ..............................................................................................306
Impresoras sin cinta entintadas: ..................................................................................306
Impresoras trmicas: ...............................................................................................306
Impresoras de inyeccin de tinta: ...........................................................................306
Impresoras lser: .....................................................................................................306
Impresoras Lser de color: ......................................................................................306
PERIFERICOS DE COMUNICACION.. ..........................................................................307
MODEM..........................................................................................................................307
Aspectos tcnicos.........................................................................................................307
Como usar la Tecnologa 56K ................................................................................307
CONCLUSIN....................................................................................................................308
CONCLUSIN......................................................................................................................309

221

BOLILLA VI (PARTE 2): TCNICAS Y DISPOSITIVOS DE ENTRADA SALIDA...........310


INDICE...................................................................................................................................311
INTRODUCCIN.................................................................................................................318
TECNICAS Y DISPOSITIVOS DE ENTRADA / SALIDA (Input / Ouput)..................319
Dispositivos de fichas y de banda perforada.......................................................................319
Dispositivos de soporte magntico......................................................................................323
Impresoras............................................................................................................................323
Plotter...................................................................................................................................330
La pantalla............................................................................................................................331
Terminales...........................................................................................................................332
Procesos de comunicacin para la transmisin de datos a distancia...................................334
Otros perifricos..................................................................................................................334
Tcnicas de entrada/salida (input/output)............................................................................335
Polling (interrogatorio de trfico) ...................................................................................336
Interrupciones (interrupts) ..............................................................................................338
Transferencia DMA ........................................................................................................339
GLOSARIO.........................................................................................................................340
CONCLUSIN......................................................................................................................342
CONCLUSIN FINAL..............................................................................................................343
BIBLIOGRAFA .......................................................................................................................344

222

INTRODUCCIN

223

APUNTES DE CATEDRA
CARRERA:
Ctedra:
Profesor:
AO:

LICENCIATURA EN ANALISIS DE SISTEMAS


INGENIERIA EN SISTEMAS
Procesamiento De Datos I
Lic. Marcelo Martinez
2003

MEMoRia
La memoria es aquella parte de la computadora en donde se almacenan los programas
y los datos. No existiran las computadoras digitales con programas almacenados sin una
memoria en la que los procesadores pudieran leer o escribir informacin.
Puede considerarse como un conjunto de clulas, cada una con posibilidad de
almacenar una informacin (palabra), dato o instruccin. Las clulas estn numeradas y la
unidad de control conoce cada clula por su nmero, llamado "Direccin". La Unidad de
Control puede pedir leer el contenido, o escribir una nueva informacin en una clula de una
direccin determinada. Para realizar estas operaciones, la Unidad de Control proporciona la
direccin de la clula implicada a un registro asociado ala memoria central, llamado
"Registro de Direccin", o tambin "Registro de Seleccin" de memoria.
El dispositivo de seleccin de memoria analiza el contenido del registro de direccin y
sensibiliza la clula implicada, ya sea para una lectura, o para una escritura. Si se trata de
una lectura, la informacin almacenada en la clula ser transferida a un segundo registro,
tambin asociado a la memoria central, llamado "Registro de Intercambio" "Registro de
Palabra".
En el caso de una escritura, previamente habr sido preciso cargar en este registro
con la informacin que se quiere transferir ala clula en cuestin.
La operacin de lectura no destruye la informacin almacenada en la clula, mientras
que la operacin de escritura destruye la informacin almacenada, sustituyndola por una
nueva informacin. La figura 1 muestra esta relacin.
La unidad bsica de memorias es el "dgito binario" al que se denomina "bit". Este
puede contener un "0" un "1" y es la unidad ms simple posible.

224

Normalmente se dice que las computadoras utilizan aritmtica binaria porque es "ms
eficiente". En realidad lo que quieren decir es que la informacin digital puede almacenarse
distinguiendo entre valores de alguna cantidad fsica continua, como un voltaje o la
corriente. El sistema de numeracin binario necesita nicamente diferencias ente dos
valores, en consecuencia es el ms fiable para codificar informacin digital.
Algunas mquinas, tales como los grandes computadores, anuncian tanto aritmtica
decimal como binaria. Este truco lo logran utilizando 4 bits para almacenar un dgito
decimal. Con cuatro bits se tiene 16 combinaciones que se utilizan para codificar los dgitos
0 al 9, dejando 6 combinaciones sin usar. A continuacin se muestra el nmero 1944
codificado en forma decimal yen binaria pura, usando 16 bits en cada ejemplo:
DECIMAL: 0001 1001 0100 0100
BINARIO: 0000011110011000
En el formato decimal, 16 bits pueden almacenar los nmeros 0 al 9999. teniendo
nicamente 10.000 combinaciones, mientras que un nmero binario puro de 16 bits puede
almacenar 65.536 combinaciones diferentes. Por esta razn se dice que el binario es ms
eficiente.
Sin embargo, supongamos que se inventara un dispositivo electrnico altamente fiable
que pudiera almacenar directamente los dgitos 0 al 9 en diez niveles de voltajes. Cuatro de
estas unidades podran almacenar cualquier nmero decimal entre 0 y 9999. Los cuatro
elementos proporcionaran 10.000 combinaciones. Con tales dispositivos. Obviamente, el
sistema decimal es ms eficiente.

DIRECCIONES DE MEMORIA
La memorias constan de cierto nmero de "celdas" ( posiciones) cada una de las
cuales puede almacenar una porcin de informacin. Cada celda tiene un nmero asociado,
denominado "direccin", por el cual los programas pueden referirse a ella. Si una memoria
tiene "n" celdas, tendr las direcciones de 0 a (n-1). Todas las celdas de una memoria
tienen la misma cantidad de bit. Si una celda tiene "k" bits, podr tener cualquiera de sus
"2k" combinaciones. Las celdas adyacentes tienen direcciones consecutivas.
Las computadoras que utilizan sistemas binarios tambin expresan las direcciones de
memoria como nmeros binarios. Si una direccin tiene "m" bits, el nmero mximo de
celdas direccionables es directamente "2m".
El nmero de bits de la direccin est relacionado con el nmero de celdas
direccionables directamente en la memoria y es independiente del nmero de bits por celda.
Una memoria con "212" celdas de 8 bits y otra de "2 12" celdas de 60 bits, necesitarn, cada
una, direcciones de 12 bits.
A continuacin se dan algunas celdas de computadoras comerciales:
Burroughs B1700
IBM PC
DEC PDP-8
IBM 1130
DEC PDP-15
Honeywell 6180

1 bit por celda.


8 bits por celda.
12 bits por celda.
16 bits por celda.
18 bits por celda.
36 bits por celda.

La importancia de la celda reside en que es la unidad direccionable ms pequea. En


los ltimos aos los fabricantes de computadoras han establecido como norma una celda de
8 bits, la que se denomina "byte". Estos bytes se agrupan en "palabras". Una computadora
con una palabra de 16 bits tiene 2 bytes por palabra, mientras que otra con una palabra de
32 bits tiene 4 bytes por palabra.
La relevancia de la palabra est en que la mayor parte de las instrucciones operan
sobre palabras enteras, por ejemplo, suma de dos palabras. De ah que una mquina de 16
bits tendr registros de 16 bits e instrucciones para manipular palabras de 16 bits, en tanto

225

que una mquina de 32 bits tendr registros de 32 bits e instrucciones (sumar, restar,
mover, etc) para manipular palabras de 32 bis.

ORDENAMIENTO DE BYTES
Los bytes en una palabra pueden numerarse de izquierda a derecha o de derecha a
izquierda. En principio esto podra parecer irrelevante, pero como veremos, esto tiene
grandes implicaciones.
La figura 2(a) presenta una parte de memoria de una computadora de 32 bits. cuyos
bytes estn numerados de izquierda a derecha (mquinas de la familia Motorola). La figura
2(b) muestra la presentacin anloga de una computadora con numeracin de derecha a
izquierda (familia Intel).
Direccin
0
4
8
12

0
4
8
12

Big Endian
1
2
5
6
9
10
13
14

3
7
11
15
byte

Palabra de 32 bits
(a) Memoria Big Endian

3
7
11
15

Little Endian
2
1
6
5
10
9
14
13

0
4
8
12
byte

Palabra de 32 bits
(b) Memoria Little Endian
Fig. 2.

Para el primer caso, en donde comienzan los nmeros se numeran por el extremo
mayor (es decir los bytes de orden superior), estas computadoras se denominan "big
endian", en contraposicin a las llamadas "little endian" de la figura 2 (b). Estos trminos
(en ingles) se deben a Jonathan Swift, quien en su libro "Los viajes de Gulliver", satiriz a
los polticos que iniciaban una guerra debido a la discusin acerca de si los huevos deban
romperse por el extremo mayor o menor.
Es importante entender que en ambos sistemas un nmero entero de 32 bits, con un
valor de por ejemplo 6, se representa con los bits 110 en los tres bit ms hacia la derecha
(de orden inferior) de la palabra y ceros en los restantes 29 bits hacia la izquierda.
En el esquema "big endian", estos bits se localizan en el byte 3 ( 7, 11, 15, etc),
mientras que en el esquema "little endian" corresponden al byte 0 ( 4, 8, 12, etc). En
ambos casos la palabra en que se ubica este nmero entero tiene la direccin 0 (cero).
Si las computadoras solo almacenaran enteros, entonces no habra problemas, sin
embargo, muchas aplicaciones requieren de una mezcla de enteros, cadenas de caracteres
y otro tipo de datos. Considerese un simple registro consistente en una cadena alfabtica
(por ejemplo nombre de los alumnos) y el de enteros (como puede ser su nmero de
legajo, su edad, etc). Para completar la palabra, la cadena se termina con uno ms bytes
de ceros.
Las dos representaciones son correctas, pero los problemas comienzan cuando una
mquina trata de enviar un registro a la otra a travs de una red. Imagnese que la "big
endian" enva un registro a la "little endian" byte por byte, empezando por el byte 0 (cero).
Eso sin considerar que los bits tambin se invierten dentro de una palabra.
Obviamente no es una solucin simple, ya que no es lo mismo tratar datos numricos
que alfabticos. Debe quedar claro que la falta de una norma en el ordenamiento de bytes,
constituye una grave molestia cuando se intercambia informacin entre mquinas
diferentes.

226

CDIGOS CORRECTORES DE ERRORES


La memoria de una computadora puede en ocasiones cometer errores debido a picos o
cadas de voltajes en el suministro de energa elctrica u otras causas. Para prevenir tales
errores, la mayora usan cdigos de deteccin o de correccin de errores.
Cuando se usan estos cdigos se agregan bits extras a cada palabra de memoria en
una forma especial. Cuando se lee una palabra de la memoria, se verifican los bit
adicionales para ver si ha ocurrido un error.
Para entender como se manejan los errores, es necesario entender que es en realidad
un error. Supongamos que una palabra de memoria es de "m" bits de datos a los que se
agregan "r" bits redundantes o de verificacin, siendo "n" la longitud total (es decir n = m +
r). Para referirse a una unidad de "n" bits, conteniendo "m" datos y "r" bits de verificacin,
se utiliza el trmino "palabra cdigo".
Dadas dos palabras cdigos cualquiera, es posible determinar en cuantos bits difieren.
Por ejemplo, entre las palabras cdigo 10001001 y 10110001, hay una diferencia de 3 bits.
El nmero de bits en el que difieren dos palabras cdigos se llama "distancia de
Hamming". Esto significa que si dos palabras estn separadas ente s por una distancia de
Hamming de "d" bits, se necesitarn "d" de verificacin para convertir un cdigo en otro.
En una palabra de memoria de "m" bits, existen "2 m" combinaciones de bits legales,
pero por la forma en que se calculan los bits de verificacin, nicamente "2m" de las "2n"
palabra cdigos son vlidas. S una lectura de memoria da una palabra invalida, la
computadora sabe que ha ocurrido un error de memoria.
Dado el algoritmo para calcular los bits de verificacin es posible encontrar las dos
palabras de cdigo cuya distancia de Hamming sea la mnima.
Las propiedades de deteccin y correccin de errores, dependen de su distancia de
Hamming. Para detectar "d" errores de un bit se necesita de un cdigo con una distancia "d
+ 1", porque con dicho cdigo no es posible que "d" errores de un solo bit puedan cambiar
una palabra vlida en otra palabra vlida.
De la misma manera, para corregir errores de un solo bit se requiere de un cdigo con
una distancia "2d + 1", pues as las palabras cdigos legales se encuentran tan separadas
entre s, que aun con "d" cambios, la palabra original est ms cerca que cualquier otra y
puede ser unvocamente determinada.
Como ejemplo sencillo de cdigos detectores de errores, consideremos que agregamos
un bit de paridad, el cual se elige de modo que el nmero de bits con valor 1 sea par (o
impar). Dicho cdigo tiene una distancia de 2, ya que cualquier error de un solo bit produce
una palabra cdigo con la paridad equivocada. Se puede usar para detectar errores
sencillos.

CLASIFICACIN Y ORGANIZACIN DE LAS MEMORIAS


En la descripcin de los componentes de un procesador, dentro de la Unidad Central
de Proceso, se encuentra la Unidad de Memoria Central Principal, en la que se almacenan
las instrucciones, los datos u operandos, los resultados parciales y los resultado finales del
proceso.
Cuando en un procesador, el sistema es especializado y el nmero de bits a
memorizar es pequeo, se suelen utilizar registros de entrada / salida en paralelo o en serie
disponibles como bloques funcionales de 4 a 8 bits en escalas de integracin media (M SI)
en la mayora de las tecnologas.
Cuando la cantidad de informacin a memorizar es elevada y en especial cuando el
sistema digital de proceso es programable, y han de memorizarse las instrucciones del
programa, adems de los datos, nunca se necesita tener acceso a toda la informacin
simultneamente. Por ello los elementos que memorizan informacin se pueden agrupar
constituyendo una unidad de memoria en la que slo se pueden acceder simultneamente
aun cierto nmero de aquellos.
"Se define por lo tanto una unidad de memoria como un conjunto de dispositivos
biestables (que pueden encontrarse en dos estados distintos) agrupados de tal manera que
solamente es posible introducir informacin o leer la que poseen simultneamente en un

227

grupo reducido de ellos ".


Las caractersticas que ha de poseer una unidad de memoria dependen:
De la forma en que van a presentar la informacin a su entrada.
De la forma en que se obtienen la informacin a su salida.
De la cantidad de informacin a memorizar.
Nos referiremos exclusivamente a las memorias que forman parte integrante de un
sistema digital de proceso y que estn fsica- mente situadas en el mismo recinto fsico que
la Unidad de control y la Unidad Aritmtica y Lgica. Estas memorias constituyen lo que se
denomina la Memoria Central del sistema. Estudiaremos los parmetros ms importantes de
una memoria y la divisin de las memorias de acuerdo con estos parmetros. Analizaremos
los diferentes tipos de memorias desde el punto de vista funcional independiente de la
tecnologa.

PARMETROS Y CARACTERSTICAS MS IMPORTANTES DE UNA


MEMORIA
Capacidad
Es la cantidad de informacin que puede almacenar. Dado que la informacin se
almacena en el sistema binario. la capacidad se mide en la unidad de medida de
informacin en dicho sistema, que es el "bit" .
La capacidad se puede considerar, por lo tanto, igual al numero "N" tota 1 de bits.
Pero en genera 1, la informacin se almacena en grupos de bits denominados "posiciones" o
"palabras", formadas por un cierto nmero "n" de bits accesibles simultneamente.
El nmero de palabras o posiciones de una memoria viene dado por lo tanto por el
cociente:
m= N
n
A la seleccin de una determinada posicin de memoria para introducir informacin en
ella o leer la que contiene, se la denomina "direccionamiento" de dicha posicin. Para que se
aproveche al mximo la capacidad de se leccin, se hace que "m" sea una potencia de "2".
El nmero de variables binarias necesarias para poder seleccionar "m" es "b", tal que:
m=

2b

La unidad de capacidad, en lo que se refiere al nmero de posiciones de memoria se


considera igual a 1024 (por ser la potencia de 2 ms prxima a 1000) y se la denomina "k".
Para seleccionar 1024 posiciones de memoria se necesitan 10 bits, ya que:
m= 2b = 210 = 1024
Como practica, el alumno puede comprobar que si "b = 14", la memoria tiene una
capacidad de 16K. El nmero total de posiciones de una memoria de "n * k" es "n x 1024".
Por ejemplo, una memoria de "132 k" posee: 32 x 1024 = 32798 posiciones.
La capacidad total de una memoria se suele indicar mediante el nmero de posiciones
y el nmero de bits de cada posiciones.

228

Formas de acceder a las posiciones de memoria


La accin de introducir informacin (escribir grabar) en una posicin de memoria, o
leer la que contiene, se denomina "acceso a la memoria". Tal como se dijo, nunca es
necesario leer o escribir simultneamente todas las posiciones de una memoria. Por ello
existen varias formas de acceso a una posicin de memoria, lo que da lugar a la divisin de
las memorias indicadas en la figura 3.

En esta figura se representa una visin panormica de los diversos tipos de memorias
y la interrelacin que existe entre ellas.
En esta clasificacin se incluyen solamente las memorias que no poseen partes en
movimiento y que en general se encuentran en el mismo recinto fsico que la Unidad de
Control y la Unidad Aritmtica y Lgica.
El almacenamiento de informacin en cantidades elevadas (cientos de miles de "k"
palabras), tanto de datos como de instrucciones de los sistemas programables, se realiza
actualmente en sistemas fsicos que poseen partes en movimiento y reciben el nombre
genrico de perifricos.

Memorias de acceso aleatorio (RAM = Ramdom Acess Memory)


Son aquellas en las que el tiempo que tarda en leerse o escribirse en una posicin es
el mismo para todas las posiciones de la memoria. Aleatoriamente se puede seleccionar
cualquier posicin de la memoria para introducir informacin o leer la que contiene. Por lo
tanto el tiempo de acceso a cualquier posicin de la memoria es el mismo

229

independientemente de su ubicacin o situacin.


En la figura 4 se representa el esquema de bloques general de una memoria de
acceso aleatorio.

Se supone que solamente se puede seleccionar simultneamente una posicin de


memoria para leer su contenido o introducir informacin en ella.
La memoria est organizada en "n", bits cuya informacin se desea leer o escribir
informacin simultneamente.
La seleccin de la posicin cuya informacin se desea leer o escribir se realiza
mediante "b" bits en paralelo denominados "bits de direccin".
El nmero total de posiciones que se puede seleccionar es:
m = 2b
La asignacin de las patitas de una pastilla de circuito integrado (IC = Integrated
Circuit) de memoria como las especifica el fabricante se indica en la figura 4.
La memoria all representada tiene la capacidad para almacenar (memorizar) 8
palabras de 4 bits cada una. La pastilla tiene 8 registros individuales "R 0, R1, R2 ... R7" y
cada registro consta de 4 flip-flop.
Los registros se identifican por los niveles lgicos en los terminales: "A2", "A1" y "A0".
Estos bits se denominan bits de direccin y al conjunto de los bits de direccin se los
conoce como "direccin".
Cuando "A2 A1 A0 = 000", se accede a 1 registro "R0".
Cuando "A2 A1 A0 = 001", se accede al registro "R1".
Y as sucesivamente.
Como hay tres bits de direccin se pueden seleccionar "2b = 8" registros.
Entonces cada uno tiene una direccin y se accede a un registro particular
almacenando los bits de direccin del registro en los terminales de direccin.
Los 4 bits que estn almacenados, es decir escritos, en un registro direccionado se
presentan en la pastilla de memoria en los terminales de entrada "I 3 I2 I1 I0". Para escribir
una palabra en el registro, este debe direccionarse, la palabra debe presentarse en la
entrada, y deben habilitarse o activarse los terminales de "Habilitacin de Escritura" (WE =

230

Write Enable) y de "Seleccin de Pastilla" (CS = Chip Select).


En base ala convencin adoptada, el diagrama indica que el terminal externo WE se
activa en el nivel bajo (activo cuando WE = 0 en un sistema de lgica positiva) y CS se
activa en el nivel alto.
En el proceso de lectura, la memoria lleva a los terminales de salida "O 3 O2 O1 O0" la
palabra almacenada en el registro direccionado.
Para leer la memoria presentamos la direccin, habilitamos la entrada CS y ponemos
la entrada de WE = 1. As pues:
WE = 0 escribe en memoria y WE = 1 lee de memoria
Por esta razn algunos fabricantes etiquetan los terminales de habilitacin de escritura
con:
Lectura / escritura (R / W)
Tanto para lectura como para escritura la entrada de seleccin de pastilla "CS" debe
estar habilitada, es decir, activada. Si CS no se activa, la pastilla est aislada del mundo
exterior. Entonces no es posible ni leer ni escribir en memoria.
El numero total de bits en la figura anterior es "8 x 4 = 32". La forma de disponer los
bits en palabras se denomina organizacin de la memoria. La memoria de la figura anterior
se describe como una memoria de 8 palabras de 4 bits / palabra.
Debido a que podemos leer o escribir palabras en la memoria, esta se denomina de
"lectura / escritura". Adems como podemos escoger cualquier registro de memoria
aleatoriamente, tanto para leer como para escribir, tambin se las conoce como "memorias
de acceso aleatorio" "RAM = Ramdom Access Memory".

Estructura de una RAM semiconductora


En principio la estructura lgica de una RAM semiconductora, del tipo que hemos
discutido, se indica en la figura 5. En esta disponemos de cuatro palabras de 2 bits cada
una, es decir, la organizacin de la memoria es "4 x 2". Nuestro inters se centra en la
estructura lgica de la memoria y no en los detalles electrnicos. Por lo tanto, hemos
incorporado algunas simplificaciones en comparacin con una memoria fsica real.

231

La estructura utiliza el conmutador controlado por lgica, cuando el nivel lgico de la


lnea de control (lnea de trazos que atraviesa el conmutador) es "1", el conmutador se
cierra y se establece la conexin; cuando el nivel lgico de la lnea de control es "0", el
conmutador se abre.
Los bits se almacenan en "Flip-Flop" elementales, es decir formados por dos
inversores acoplados. Los bits de direccin "A1" "A0" se aplican al decodificador.
Cuando tenemos, por ejemplo, "A1 = 1" y "A0 = 0", la salida de la puerta 62 est en
"1" lgico, mientras que las salidas de las dems compuertas lgicas AND del decodificador
estn en "0" lgico. Por lo tanto, solo se puede acceder a los flip-flop del Registro de
Palabra 2, ya que solamente los conmutadores de estos flip-flops estn cerrados y por
consiguiente conectados con las lneas de bits.
O sea, la entrada de direccin "A1 A0 = 10" direcciona la palabra 2 y slo la palabra 2.
Si la seleccin de la pastilla est en cero lgico, las salidas de las puertas "G 0" y "G1"
estn en "0" lgico y las lneas de bits no se conectan ni ala entrada de datos ni a los
terminales de salida.
Si "CS = 1 " y "WE = 0 ", los conmutadores que conectan "I1" e "I0" a las lneas de bits
se cerrarn y los flip-flops asumirn estados correspondientes a los niveles lgicos de las
entradas de datos.
Si "CS = 1" y "WE = 1", los flip-flop se conectarn a los terminales de salida, para que
la palabra almacenada pueda ser leda.
Comercialmente se disponen de pastillas de Circuito Integrado (IC = Integrated
Circuit) que tienen incorporados "65.536 = 216 bits" an mayor en la actualidad, a un
precio bastante bajo.

232

Pastillas de memoria en paralelo


Con frecuencia surgen casos en los que no es adecuado el nmero de palabras de una
pastilla, el nmero de bits por palabra, las dos cosas simultneamente. El problema
puede remediarse colocando las pastillas en paralelo.
En la figura 6 se representa la conexin de pastillas en paralelo para incrementar el
nmero de bits por palabra (pero no el nmero de palabras). Hay dos pastillas de 8
palabras en paralelo, 4 bits por palabra, para construir una memoria cuyo nmero de
palabras sigue siendo 8, pero el nmero de bits se ha incrementado de 4 a 8. Los 3 bits de
direccin se aplican a las pastillas de direccin de ambas memorias. Los terminaks "CS" de
las pastillas se unen, lo mismo que los terminales WE. Las entradas de seleccin de pastilla
y habilitacin de escritura seleccionan y habilitan simultneamente ambas pastillas.

La pastilla 1 acepta y almacena 4 bits (0, 1, 2, 3), y la pastilla 2, otros 4 bits (4, 5, 6,
7). Por supuesto, se pueden conectar en paralelo ms pastillas adicionales. As, con tres
pastillas de 8 palabras, 4 bits / palabra, se conseguir una memoria de 8 palabras. 12 bits /
palabra, y as sucesivamente. Cuando se aadan pastillas, la direccin se aplica
simultneamente a los terminales de entrada de direccin de las dems pastillas.
Anlogamente, todas las patitas CS se conectan entre s para tener una sola entrada CS y
las entradas WE se tratan de la misma forma.
Para dar mayor flexibilidad al problema de los bits por palabra, los fabricantes
disponen de pastillas de memoria con palabras de 1 bit. As pues, encontramos en catlogos
de fabricantes memorias cuya organizacin es "256 x 1". "1024 x 1'. "4096 x 1", etc. Una
vez seleccionada una pastilla con un nmero adecuado de palabras. entonces ensamblamos
una memoria de "n" bits por palabra, simplemente colocando "n" pastillas en paralelo.
En la figura 7 mostramos la forma de poner en paralelo dos pastillas de 8 palabras, 4
bits / palabra, para obtener una memoria de 16 palabras de 4 bits / palabra. Como antes,
los tres bits de direccin se aplican a ambas pastillas, pero en lugar de tener un bit de
entrada CS comn aplicado a las dos pastillas, cuando se activa la entrada CS de una
pastilla, se desactiva la entrada CS de la otra, La entrada CS del sistema de memoria (la de
entrada al inversor) ahora es un bit de direccin adicional, que llamamos "A 4". Cuando
"A4=1", la pastilla direccionada es la 2. y cuando "A4=0", se direcciona la pastilla 1. El bit
"A4" de direccin de seleccin de pastilla selecciona por lo tanto una u otra de las pastillas.

233

Los bits de seleccin "A0", "A1", "A2" seleccionan la posicin de una palabra particular
en la pastilla seleccionada. Los bits de entrada de datos y la entrada WE se aplican en
comn a ambas pastillas.
Un problema especial, que no apareca cuando las pastillas se colocaban en paralelo
para incrementar el nmero de bits por palabra como en la figura 6. surge en este caso
que estamos considerando. Ahora una palabra de salida se lee a veces de una pastilla o a
veces de otra. Presumiblemente la palabra se transmitir al mismo destino
independientemente de la pastilla que la origine. Por lo tanto, las salidas de las pastillas
tendrn que aplicarse a un bus comn, sta es la razn por la que aparece dicho bus en la
figura 7.
El esquema paralelo de la figura 7, puede, por supuesto, extenderse a ms pastillas.
Supongamos, por ejemplo, que quisiramos utilizar este esquema para colocar en paralelo
cuatro pastillas con el fin de obtener una memoria de 32 palabras de 4 bits / palabra.
Podemos introducir un bit de direccin "A5". Como antes, podramos aplicar tres bits
de direccin "A0", "A1", "A2" a los terminales de entrada de direccin de las pastillas. Los bits
de direccin "A4" y "A5" se aplicaran aun decodificador como se indica en la figura 8. Las
salidas del decodificador se utilizan entonces para activar las entradas de seleccin de
pastillas.

234

Memorias pasivas
El parmetro permanencia de la informacin, indicado en la figura 3, se mide en
forma cualitativa por la diferencia entre el tiempo de lectura y el tiempo de escritura. De
acuerdo con este parmetro, las memorias de acceso aleatorio se clasifican en memoria de
escritura / lectura (R/W) o activas. Se denominan memorias pasivas a aquellas en las que
existe gran diferencia entre el tiempo de lectura y el de escritura, el cual es mucho mayor.
A su vez este tipo de memorias se pueden clasificar tal como se indica a continuacin:
1- Memorias totalmente pasivas (ROM = Read Only Memories): son aquellas
memorias que nunca pueden ser escritas por el que las utiliza, el cual solamente
puede realizar la operacin de lectura. La grabacin escritura la realiza el
fabricante. Por lo tanto, para quien la utiliza, el tiempo de escritura se puede
considerar infinito y el tiempo de lectura tiene un cierto valor que depende de la
tecnologa con la cual ha sido fabricada la memoria.
2- Memorias pasivas programables (PROM = Programmable Read Only
Memories): Son aquellas cuyo contenido pueden ser escrito por el usuario una
sola vez.
3- Memorias pasivas reprogramables, memorias pasivas programambles
borrables (EPROM = Erasable Programmable Read Only Memories): Son
aquellas cuyo contenido pueden, por un procedimiento especial, ser borradas y
programadas por el usuario varias veces. La escritura se realiza por un
procedimiento especial, el tiempo necesario es varias veces superior al de lectura.
Estas memorias se denominan apropiadamente de solo lectura, ya que las operaciones
de borrado y re-escritura no pueden realizarse mientras la memoria no est trabajando en
un sistema digital. La memoria debe extraerse del sistema y su modificacin puede llevar
horas.
Como la memoria de lectura / escritura, la de slo lectura tambin son de acceso
aleatorio. Por consiguiente es bastante inconsistente utilizar la etiqueta "memoria de acceso
aleatorio" (RAM) para referirse nicamente a las memorias de lectura / escritura y no alas
de slo lectura. Mucha gente a indicado esa inconsistencia, no obstante, todava se permite
esta terminologa.
En una ROM el bit almacenado en cualquier posicin, no tiene que cambiarse. Por
consiguiente, no es necesario almacenar los bits en flip-flop y por ello una ROM puede
ensamblarse completamente a partir de circuitos combinacionales. Realmente una ROM no
235

es ms que un conversor de cdigo, y por lo tanto, consta de un decodificador y de un


codificador.

Memorias de acceso serie


Son aquellas en las que el tiempo que tarda en leerse o grabarse una posicin
depende de la situacin fsica en el interior de la memoria. Para introducir informacin en
una posicin hay que hacerla pasar por todas las que la preceden hasta alcanzar los
terminales de entrada.
De forma similar, para leer el contenido de una posicin hay que hacer pasar la
informacin por todas las que la siguen hasta alcanzar los terminales de salida.
Dentro de este tipo de memorias. y de acuerdo a la forma de entrada-salida, las
mismas pueden clasificarse en:
1- Registros de desplazamiento: Como ya hemos visto. en estas memorias de
acceso serie, cada orden externa de escritura o lectura desplaza la informacin una
posicin en el interior de la memoria. La orden externa de desplazamiento est
constituida por los impulsos de un generador. Los registros de desplazamiento se
clasifican en dos clases, de acuerdo con las caractersticas de frecuencia de los
impulsos de desplazamiento:
a- Registros de desplazamiento estticos: Son aquellos en los que los impulsos de
desplazamiento pueden anularse por tiempo indefinido, la informacin queda
almacenada en las diferentes posiciones de la memoria alas que fue llevada por
el ltimo impulso de desplazamiento aplicado.
b- Registros de desplazamiento dinmicos: Son aquellos en las que los impulsos de
desplazamiento no pueden anularse por tiempo indefinido porque de esta
manera desaparece la informacin contenida en su interior.
2- Memorias FIFO (First Input First Output): Son memorias de acceso serie en las
que la primera informacin que entra es la primera en salir.
En la figura 9 se representa grficamente la forma en que se mueve la informacin
en el interior de la memoria FIFO al realizar sucesivas operaciones de escritura
lectura.
Se puede deducir que la memoria FIFO se comporta igual que un registro de
desplazamiento en la operacin de lectura, pero no as en la operacin de escritura,
en la que la informacin se desplaza desde la entrada hasta la posicin vaca ms
cercana a la salida.

236

3- Memorias LIFO (Last Input First Output): Son memorias de acceso serie en las
que la informacin que entra en la ltima operacin de escritura es la que primero
sale en la operacin de lectura que se realice. En la figura 10 se indica
grficamente la forma en que se realiza la escritura y la lectura de una memoria
LIFO.

237

El alumno puede deducir que en una operacin de escritura, toda la informacin


contenida en la memoria se desplaza una posicin hacia la derecha y en una operacin de
lectura se desplaza una posicin hacia la izquierda.

Memorias asociativas
Estas memorias se caracterizan porque la bsqueda de informacin en la operacin de
lectura no se realiza indicando una direccin y observando su contenido, sino que se
suministra la informacin ala memoria para observar si sta la contiene en alguna de sus
posiciones.
La informacin almacenada en cada posicin de una memoria asociativa puede estar
organizada de dos formas fundamentales:
a- Dividida en dos partes campos: Un campo es el de la informacin que se
compara con la que se presenta a las entradas de la memoria en una operacin de
lectura. El otro campo es el que da como respuesta la memoria cuando existe
coincidencia entre el campo de comparacin y la informacin de entrada.
b- Toda la informacin contenida en cada posicin de la memoria se compara
con la informacin de entrada: La memoria da solamente como respuesta en
general un bit cuyo estado indica si existe alguna informacin en el interior de la
memoria que es idntica a la presentada a la entrada.

238

La estructura asociativa de una unidad de memorias es adecuada para el


almacenamiento de ciertos tipos de organizaciones de datos. Por ejemplo, una tabla de
clientes con su direccin como dato asociado, se debe organizar en forma asociativa para
que al presentar ala memoria el nombre de un cliente, sta de a la salida su direccin.

MODOS DE DIRECCIONAMIENTO
Hemos visto que generalmente (aunque no necesariamente) una instruccin consta de
una parte de operacin y otra de direccin. La parte de direccin puede contener la
direccin de un operando utilizado en la ejecucin de la instruccin. En otras ocasiones la
parte de direccin de la instruccin puede contener, no la direccin del operando, sino la
direccin donde se encuentra la direccin del operando, en el primer caso la direccin se
describe como directa, mientras que en el segundo caso es una direccin indirecta. Esto es
lo que se conoce como "Modo de Direccionamiento".
En computadoras, y microcomputadoras se emplea una amplia gama de modos de
direccionamiento, por ello vamos a pasar revista a las diferentes tcnicas de
direccionamiento. Estas equivalen generalmente a una transformacin de la parte de
direccin de la instruccin en la direccin que se transferir finalmente al Registro de
Seleccin de la memoria para obtener la informacin deseada. Llamaremos a esta ltima
"Direccin Efectiva". El tipo de procesamiento que debe sufrir el contenido de la zona de
direccin viene especificado, ya sea por el Cdigo de Operacin, cuando este impone un tipo
determinado, o por la configuracin binaria de una parte de la instruccin, que contiene lo
que convenimos en llamar las "Condiciones de Direccionamiento".
No todos los procesadores o microprocesadores tienen todos los tipos de
direccionamiento, en algunos pueden existir modos que en otros no existen y viceversa.
Debido a estas distintas formas de direccionar los registros de un computador, la
instruccin constar de tres partes:
Veremos a continuacin los modos de direccionamiento ms comun- mente utilizados
en los procesadores actuales:

Modo de direccionamiento directo


En el direccionamiento directo, como ya lo sealamos, la instruccin contiene la
direccin de la posicin de memoria donde se encuentra el operando.
Este direccionamiento exige un ciclo de memoria para obtener el operando. La figura
11 muestra esta situacin.

239

Modo de direccionamiento indirecto


En el direccionamiento indirecto, como tambin dijimos, la instruccin no contiene la
direccin de la posicin de memoria donde se encuentra el operando, sino la direccin de la
posicin de memoria donde se encuentra la direccin del operando.
Por lo tanto, la localizacin de un operando direccionado indirectamente exigir dos
ciclos de memoria: un ciclo para buscar la direccin efectiva, otro ciclo para buscar el
operando, de acuerdo a la figura 12.

Modo de direccionamiento relativo


La direccin relativa no indica la posicin de la informacin en la memoria en valor
absoluto, sino que la sita en relacin a una direccin de referencia. Esta a su vez, est
almacenada en un registro, frecuentemente llamado "Registro de Traslacin". La direccin
efectiva se obtiene sumando la direccin relativa con la direccin de referencia.
Las tcnicas de direccionamiento relativo se emplean especialmente para permitir
direccionar a toda la memoria. Es as como un calculador cuya palabra es de 16 bits, si se
tomasen 8 bits conjuntamente para el Cdigo de Operacin y las Condiciones de
Direccionamiento, no quedaran ms que 8 bits para la direccin. Esto permitira direccionar
"28 = 256" posiciones de memoria, cuando lo normal es que los ordenadores de este tipo
poseen muchas posiciones ms. Si no queremos pasar aun formato de instruccin de dos
palabras, puede emplearse el direccionamiento relativo para alcanzar directamente
determinadas zonas de la memoria. Veamos tres ejemplos:
1- Direccionamiento por Base y Desplazamiento
En la mquina existe un registro llamado "Registro Base", que contiene la direccin de
referencia (primera direccin de un programa o de una zona de datos).
A la informacin que alberga la parte de direccin de la instruccin se le llama
"Desplazamiento".
La direccin efectiva es la suma de la "Base" y el "Desplazamiento". como se muestra
en la figura 13.

240

Algunos calculadores admiten varios registros de base, La instruccin debe especificar


entonces la direccin del Registro Base escogido
2- Oireccionamiento por ReFerencia al Proqrama
El contenido del contador de programa sirve de direccin de referencia. Con este
sistema es posible generalmente direccionar dos zonas de memoria a un lado ya otro de la
instruccin en curso, segn que la parte de direccin de la instruccin se sume o se reste
con el contenido del Contador de Programa. La figura 14 muestra este modo de
direccionamiento.

3- Oireccionamiento or Yuxta osicin


Se considera a la memoria dividida en zonas de "2n" palabras llamadas "Pginas". En
genera 1, la parte de di reccin de la instruccin contiene "n" bits, por lo que no capacita a
la mquina para direccionar ms palabras que las que contiene la pgina ( direccin de
pgina), y de la parte de direccin de la instruccin, que suministra la direccin dentro de la
pgina.
Este modo se muestra en la figura 15.

241

Las condiciones de direccionamiento, en la mayora de los pequeos ordenadores


organizados por pginas, poseen un bit de direccionamiento que, segn su valor, implica el
direccionamiento absoluto, es decir dentro de la pgina cero, o el direccionamiento en la
pgina de la instruccin en curso por yuxtaposicin de los bits de mayor peso del contador
de programa y de la direccin dentro de la pgina.
Si la compuerta (no dibujada en la figura) est cerrada, hay direccionamiento absoluto
en la pgina cero, si est abierta hay direccionamiento en la pgina de la instruccin. En
este caso el direccionamiento por yuxtaposicin puede ser considerado como
direccionamiento por referencia al principio de la pgina en curso.
4- Complementos acerca del direccionamiento relativo
Al menos uno de estos direccionamiento relativos se encuentra en las mquinas de
palabra corta (12. 16 18 bits) donde la zona reservada a la direccin no basta para
direccionar a toda la memoria, a no ser que se utilicen instrucciones sobre dos palabras.
Permiten direccionar directamente zonas de memoria (adems de las "2n" primeras
palabras) sin necesidad de recurrir al direccionamiento indirecto. Las referencias fuera de
esta zona hacen necesario un direccionamiento indirecto apoyado en una clula de memoria
perteneciente a estas zonas directamente accesibles.
El direccionamiento por base y desplazamiento, lo mismo que un tipo ms
evolucionado de direccionamiento por pgina, se utiliza en grandes ordenadores para
resolver problemas de asignacin de memoria en multiprogramacin. En el caso de las PCs
se usa un sistema parecido para poder direccionar ms memoria.

Modo de direccionamiento indexado


En el direccionamiento indexado, como en el relativo, la parte de direccin de la
instruccin contiene un nmero "N" que puede ser positivo o negativo. Sin embargo, para
utilizar el direccionamiento indexado, el computador debe estar equipado con un registro
especial (distinto del Contador de Programa) empleado para permitir direccionamiento
indexado, y denominado "Registro Indice" (I). La posicin de memoria donde se localiza el
operando se encuentra mediante la suma "N + I".
La direccin efectiva se obtiene sumando a la parte de direccin de la Instruccin el
contenido de un registro de la Unidad centra 1 llamado "Registro Indice", llamndose a
menudo a su contenido "Indice".
Este registro admite un cierto nmero de operaciones, como carga, lectura,
incremento o disminucin en uno, comparacin. El programador lo utiliza para tratar,
mediante una sola instruccin en un bucle de programa, datos almacenados vectorialmente
en clulas sucesivas (tablas) de la memoria. El direccionamiento correspondiente es

242

indexado, lo que quiere decir que la direccin especificada en la instruccin es la de la


primera clula del vector (tabla) ya ella se suma el valor del ndice, inicialmente puesto a
cero e incrementando en uno cada vez que se ejecute la instruccin de fin de bucle. Esta
ltima compara el ndice con el nmero de elementos del vector y origina un salto al
principio del bucle mientras quede algn elemento a procesar.
La figura 16 ilustra el concepto de indexacin, con la existencia de varios registros
ndice.

En algunos ordenadores, el Indice se inicializa en "-(n-1)", donde "n" representa el


nmero de los elementos del vector. La direccin especificada en la instruccin es la ltima
del vector. El ndice se incrementa en uno a cada pasada y se sale del bucle cuando el
ndice es cero.
Otras mquinas poseen dos registros ndice, uno contiene el ndice y el otro el valor
mximo de este ndice, ambos resultan comparados al momento de la instruccin a fin de
bucle y se origina un salto al principio del mismo mientras no se produzcan coincidencias
entre los dos valores.
En algunas mquinas tambin existen registros de autondice incrementables en 1
cada vez que son referenciados. En muchos ordenadores pequeos se implantan los ndices
en posiciones reservadas de la memoria central, con objeto de economizar el costo de los
correspondientes registros.

Modo de direccionamiento por registro indirecto


Algunas computadoras que incorporan la facultad del direccionamiento de registro
indirecto, tienen un registro especial, a menudo llamado "Puntero" (P) (Pointer Register).
Este, registro "P" contiene la direccin del operando, es decir, apunta a la posicin de
memoria del operando. Una instruccin que invoque realmente direccionamiento de registro
indirecto no tiene bits significativos en su parte de direccin. En su lugar, la instruccin
completa se incluye en los bits asignados a la parte de operacin de la instruccin. Una
instruccin tpica que utiliza registro de direccionamiento indirecto debera especificar:
"Cargar el acumulador con el operando localizado en la direccin de memoria dada en el
registro P".

243

Otros modos de direccionamiento


Otros esquemas comunes para localizar fuentes de operandos o destinos de
operandos, denominados "modos de direccionamiento", incluyen los siguientes:
1- Direccionamiento Inmediato
No es propiamente un direccionamiento, puesto que la parte de direccin de la
instruccin no contiene la direccin del operando, sino el operando mismo. As, la
instruccin sera: "Cargar al acumulador directo con 37", significa cargar al acumulador con
el nmero 37. La figura 17 muestra este tipo de direccionamiento.

2- Direccionamiento Inherente
Ordinariamente una direccin que es parte de una instruccin se refiere a una posicin
de memoria. Cuando una instruccin indica una fuente o un destino de algunos datos y no
se direcciona especficamente, ya que no se hace referencia a la posicin de memoria, se
dice que la instruccin tiene una direccin "inherente". Por ejemplo, en la instruccin
"Borrar el acumulador", los "datos" movidos estn en una palabra cuyos bits son todos 0
(ceros) y la direccin de destino de estos datos es el registro acumulador. De nuevo, en la
instruccin "Mover el contenido del registro R1 al registro R2", R1 es la "direccin" donde se
lee una palabra y R2 es la "direccin" donde escribe la palabra.

244

CONCLUSIN

245

BOLILLA V: EL NIVEL DEL


LENGUAJE ENSAMBLADOR

246

INDICE
INDICE GENERAL............................................................................................1
BOLILLA I: LA COMPUTADORA..............................................................................................4
INDICE.......................................................................................................................................5
INTRODUCCIN...................................................................................................................12
LA COMPUTADORA............................................................................................................13
CONCEPTO:.........................................................................................................................13
FUNCIONES Y ACCIONES:...............................................................................................13
Para qu sirve una computadora?:.........................................................................................13
Computadora y Circuitos:......................................................................................................14
HARDWARE Y SOFTWARE: ............................................................................................14
Software: ...........................................................................................................................14
Al software se lo clasifica en dos grupos: .....................................................................14
Hardware:...........................................................................................................................15
Arquitectura - Componentes Bsicos:...................................................................................15
Unidad de Control:.............................................................................................................15
Unidad aritmtico-lgica:..................................................................................................15
Memoria:(Memoria Central)..............................................................................................15
Perifricos: ........................................................................................................................15
Ncleo de la computadora: ...............................................................................................15
BUSES DE COMPUTADORAS:.........................................................................................16
Buses sncronos y asncronos: ..............................................................................................18
Arbitraje del bus:...............................................................................................................19
Ejemplo de encadenamiento margarita:.............................................................................19
Solicitud del Bus............................................................................................................19
Dispositivos de E/S............................................................................................................19
Manejo de interrupciones:.................................................................................................20
Canales de e/s.........................................................................................................................20
TECNOLOGA DE CANALES:.......................................................................................21
TIPOS DE CANALES:.....................................................................................................21
Multiplexor: ..................................................................................................................21
Selector..........................................................................................................................22
Multipexor por bloques: ................................................................................................22
Spoll: .........................................................................................................................22
SISTEMA OPERATIVO.......................................................................................................23
Introduccin: ....................................................................................................................23
QU ES UN SISTEMA OPERATIVO?.........................................................................24
CONCLUSIN........................................................................................................................25
BOLILLA II (Parte 1): EL NIVEL DE LOGICA DIGITAL.....................................................26
INDICE.....................................................................................................................................27
INTRODUCCIN...................................................................................................................34
EL NIVEL DE LOGICA DIGITAL......................................................................................35
COMPUERTAS Y ALGEBRA BOOLEANA......................................................................35
Compuertas........................................................................................................................35
Algebra booleana...............................................................................................................37
Implementacin de funciones booleanas ..........................................................................38

247

Equivalencia entre circuitos...............................................................................................40


CIRCUITOS DIGITALES BSICOS..................................................................................44
Circuitos integrados ..........................................................................................................44
Circuitos combinacionales ................................................................................................47
Multiplexores ................................................................................................................47
Decodificadores ............................................................................................................49
Comparadores ...............................................................................................................51
Arreglos (matrices) lgicos programables ....................................................................51
Circuitos aritmticos..........................................................................................................53
Registros de corrimiento................................................................................................53
Sumadores .....................................................................................................................54
Unidades aritmticas y lgicas......................................................................................55
Relojes ..............................................................................................................................55
MEMORIA............................................................................................................................57
Biestables...........................................................................................................................57
Bieslables SR sincronizados..........................................................................................59
Biestables D sincronizados............................................................................................59
Flip-flops y registros..........................................................................................................59
Registros........................................................................................................................60
Organizacin de las memorias...........................................................................................61
Propiedades de las memorias.............................................................................................64
MICROPROCESADORES y BUSES...................................................................................66
Microprocesadores ............................................................................................................66
Buses de computadora.......................................................................................................68
Buses sncronos .................................................................................................................70
BUSES ASINCRONOS....................................................................................................73
Arbitraje del bus ................................................................................................................74
Manejo de interrupciones ..................................................................................................77
CONCLUSIN........................................................................................................................79
BOLILLA II (Parte 2): EL NIVEL DE MICROPROGRAMACIN.......................................80
INDICE.....................................................................................................................................81
INTRODUCCIN...................................................................................................................88
EL NIVEL DE MICROPROGRAMACIN .......................................................................89
REPASO SOBRE EL NIVEL DE LGICA DIGITAL .......................................................90
Registros ..........................................................................................................................90
Buses .................................................................................................................................90
Multiplexores y decodificadores .......................................................................................92
Unidades aritmticas y lgicas y registros de corrimiento ...............................................92
Relojes ..............................................................................................................................93
Memoria principal .............................................................................................................94
Encapsulado de los componentes .....................................................................................95
UNA MICROARQUITECTURA TIPICA ...........................................................................96
La ruta de datos .................................................................................................................96
Microinstrucciones ............................................................................................................98
Cronologa de las microinstrucciones .............................................................................100
Secuenciamiento de las microinstrucciones ...................................................................102
UNA MACROARQUITECTURA TIPICA .......................................................................103
Pilas .................................................................................................................................103

248

El juego de macroinstrucciones ......................................................................................107


MICROPROGRAMACIN: UN EJEMPLO ....................................................................110
El lenguaje micro ensamblador .......................................................................................110
El ejemplo de microprograma .........................................................................................111
Observaciones sobre el microprograma ..........................................................................113
Perspectivas ....................................................................................................................114
EL DISEO DEL NIVEL DE MICROPROGRAMACIN ............................................115
Microprogramacin horizontal frente a microprogramacin vertical..............................115
Nanoprogramacin ..........................................................................................................122
Mejora del rendimiento ...................................................................................................123
Memoria cach ...............................................................................................................129
CONCLUSIN......................................................................................................................134
................................................................................................................................................135
BOLILLA II (Parte 3): EL NIVEL DE MAQUINA CONVENCIONAL................................135
INDICE...................................................................................................................................136
INTRODUCCIN.................................................................................................................143
EL NIVEL DE MQUINA CONVENCIONAL.................................................................144
EJEMPLOS DEL NIVEL DE MAQUINA CONVENCIONAL........................................144
FORMATOS DE INSTRUCCIN.....................................................................................145
Criterios de diseo de formatos de instruccin................................................................146
Cdigos de operacin con extensin...............................................................................147
Ejemplos de formatos de instrucciones...........................................................................149
La PDP-11...................................................................................................................149
Direccionamiento.............................................................................................................149
Direccionamiento inmediato........................................................................................150
Direccionamiento directo.............................................................................................150
Direccionamiento de registros.....................................................................................151
Direccionamiento indirecto..........................................................................................151
Indexacin....................................................................................................................152
Direccionamiento por medio de pilas..........................................................................153
Notacin polaca inversa...........................................................................................155
Evaluacin de frmulas en la notacin polaca inversa............................................157
Algoritmo.............................................................................................................157
Algoritmo.............................................................................................................157
Ejemplos de direccionamiento.....................................................................................160
Direccionamiento en la PDP-11..............................................................................160
Tipos de Instrucciones ........................................................................................................160
Instrucciones de movimiento de datos ............................................................................161
Operaciones binarias .......................................................................................................161
Operaciones unarias ........................................................................................................162
Comparaciones y Saltos Condicionales...........................................................................164
Instrucciones de llamada a procedimiento ......................................................................166
Control de iteraciones .....................................................................................................167
Entrada / salida ................................................................................................................168
Flujo De Control .................................................................................................................173
Flujo de control secuencial y saltos ................................................................................173
Procedimientos ................................................................................................................174
Corrutinas ........................................................................................................................179
249

Desvios ............................................................................................................................182
Interrupciones .................................................................................................................183
ACCIONES DE HARDWARE ..................................................................................183
ACCIONES DE SOFTWARE ...................................................................................184
CONCLUSIN......................................................................................................................187
BOLILLA III: ARQUITECTURA DEL PROCESADOR.......................................................188
INDICE...................................................................................................................................189
INTRODUCCIN.................................................................................................................196
ARQUITECTURA DEL PROCESADOR..........................................................................197
ESTRUCTURA GENERAL...............................................................................................197
DESCRIPCIN DE LOS COMPONENTES DE UN PROCESADOR ............................197
Microprocesadores...............................................................................................................200
EJECUCIN DE LAS INSTRUCCIONES .......................................................................201
ORGANIZACIN DE LA CPU ........................................................................................202
LA UNIDAD ARITMTICA Y LGICA .........................................................................204
LA UNIDAD DE CONTROL.............................................................................................206
FASE DE BSQUEDA DE LA INSTRUCCIN .............................................................207
FASE DE BSQUEDA O ALMACENAMIENTO DEL OPERANDO ...........................207
Caso de bsqueda del operando, seguido de procesamiento: .........................................207
Caso de almacenamiento del operando: ..........................................................................208
FASE DE PREPARACIN DE LA SIGUIENTE INSTRUCCIN .................................209
INSTRUCCIN DE RUPTURA DE SECUENCIA ..........................................................209
EL CANAL..........................................................................................................................210
LAS UNIDADES PERIFRICAS .....................................................................................211
INTERRUPCIONES ..........................................................................................................211
CONCLUSIN......................................................................................................................214
BOLILLA IV: MEMORIA........................................................................................................215
INDICE...................................................................................................................................216
INTRODUCCIN.................................................................................................................223
MEMoRia ..............................................................................................................................224
DIRECCIONES DE MEMORIA .......................................................................................225
ORDENAMIENTO DE BYTES ........................................................................................226
CDIGOS CORRECTORES DE ERRORES ....................................................................227
CLASIFICACIN Y ORGANIZACIN DE LAS MEMORIAS .....................................227
PARMETROS y CARACTERSTICAS MS IMPORTANTES DE UNA MEMORIA 228
Capacidad.........................................................................................................................228
Formas de acceder a las posiciones de memoria ............................................................229
Memorias de acceso aleatorio (RAM = Ramdom Acess Memory) ............................229
Estructura de una RAM semiconductora ................................................................231
Pastillas de memoria en paralelo ........................................................................233
Memorias pasivas....................................................................................................235
Memorias de acceso serie ...........................................................................................236
Memorias asociativas ..................................................................................................238
MODOS DE DIRECCIONAMIENTO ..........................................................................239
Modo de direccionamiento directo .............................................................................239
Modo de direccionamiento indirecto ..........................................................................240
250

Modo de direccionamiento relativo ............................................................................240


Modo de direccionamiento indexado ..........................................................................242
Modo de direccionamiento por registro indirecto .......................................................243
Otros modos de direccionamiento ..............................................................................244
CONCLUSIN......................................................................................................................245
................................................................................................................................................246
BOLILLA V: EL NIVEL DEL LENGUAJE ENSAMBLADOR.............................................246
INDICE...................................................................................................................................247
INTRODUCCIN.................................................................................................................254
EL NIVEL DEL LENGUAJE ENSAMBLADOR..............................................................255
INTRODUCCIN AL LENGUAJE ENSAMBLADOR ...................................................256
Qu es un lenguaje ensamblador? .................................................................................256
Formato de una sentencia en lenguaje ensamblador .......................................................257
Comparacin entre el. lenguaje ensamblador y los lenguajes de alto nivel ...................258
Afinacin de programas ..................................................................................................259
EL PROCESO DE ENSAMBLAJE ...................................................................................261
Ensambladores de dos pasadas .......................................................................................261
La primera pasada ...........................................................................................................262
La segunda pasada ..........................................................................................................266
La tabla de smbolos .......................................................................................................267
MACrOS .............................................................................................................................269
Definicin, llamada y expansin de una macro ..............................................................269
Macros con parmetros ...................................................................................................271
Implementacin de macros en un ensamblador ..............................................................271
MONTAJE (LINKING) y CARGA ...................................................................................272
Tareas realizadas por el programa ensamblador .............................................................274
Estructura de un mdulo objeto ......................................................................................276
Tiempo de ligadura y reubicacin dinmica ...................................................................277
Enlace dinmico ..............................................................................................................279
CONCLUSIN......................................................................................................................282
BOLILLA VI (Parte 1): PERIFRICOS.................................................................................283
INDICE...................................................................................................................................284
INTRODUCCIN.................................................................................................................291
PERIFRICOS......................................................................................................................292
RESEA HISTRICA.......................................................................................................292
INTRODUCCIN ...............................................................................................................292
PERlFERICOS DE ENTRADA: ........................................................................................293
TECLADO: .....................................................................................................................293
Cuidados y advertencias..............................................................................................294
MOUSE (RATON) .........................................................................................................295
Tipos de ratones...........................................................................................................296
Ratones Inalmbricos. .............................................................................................296
Ratones Estacionarios..............................................................................................296
PANTALLAS TCTILES: ............................................................................................296
BOLAS GIRATORIAS: .................................................................................................296

251

ESCANER ......................................................................................................................296
Profundidad de color....................................................................................................296
Tipos de escner:.........................................................................................................297
Escner de mano: ....................................................................................................297
Ventaja: ...............................................................................................................297
Desventajas: ........................................................................................................297
Escner de Sobremesa: ...........................................................................................297
Ventajas: .............................................................................................................297
Desventajas: ........................................................................................................297
Escner de Rodillo:..................................................................................................297
Calibracin...................................................................................................................297
LECTORES DE CODIGO DE BARRA.....................................................................297
TABLETA DIGITALIZADORA....................................................................................298
LECTORES DE TARJETAS MAGNETICAS...............................................................298
LAPIZ OPTICO: ............................................................................................................298
PERIFERICOS DE ALMACENAMIENTO: .................................................................299
Discos...........................................................................................................................299
Discos flexibles............................................................................................................299
Fiabilidad del soporte. .............................................................................................300
Facilidad de manejo y almacenamiento. .................................................................300
1. Disco flexible de 5 1/4 pulgadas .....................................................................300
2. Disco flexible de 3 1/2pulgadas ......................................................................300
Disco duro....................................................................................................................300
Discos opticos: ............................................................................................................301
Cintas magneticas: ......................................................................................................302
DVD:............................................................................................................................302
Prestaciones del DVD: ............................................................................................303
El disco por dentro: .................................................................................................303
La compresin MPEG-2: ........................................................................................303
El futuro del DVD: .................................................................................................303
PERIFERICOS DE SALIDA: ............................................................................................304
PANTALLAS DE SISTEMAINFORMATICO (Monitor): ...........................................304
Impresoras........................................................................................................................305
Impresoras con cinta entintada: ..................................................................................305
Impresora de Bola: ..................................................................................................305
Impresoras de agujas: ..............................................................................................306
Impresoras sin cinta entintadas: ..................................................................................306
Impresoras trmicas: ...............................................................................................306
Impresoras de inyeccin de tinta: ...........................................................................306
Impresoras lser: .....................................................................................................306
Impresoras Lser de color: ......................................................................................306
PERIFERICOS DE COMUNICACION.. ..........................................................................307
MODEM..........................................................................................................................307
Aspectos tcnicos.........................................................................................................307
Como usar la Tecnologa 56K ................................................................................307
CONCLUSIN....................................................................................................................308
CONCLUSIN......................................................................................................................309
BOLILLA VI (PARTE 2): TCNICAS Y DISPOSITIVOS DE ENTRADA SALIDA...........310
INDICE...................................................................................................................................311

252

INTRODUCCIN.................................................................................................................318
TECNICAS Y DISPOSITIVOS DE ENTRADA / SALIDA (Input / Ouput)..................319
Dispositivos de fichas y de banda perforada.......................................................................319
Dispositivos de soporte magntico......................................................................................323
Impresoras............................................................................................................................323
Plotter...................................................................................................................................330
La pantalla............................................................................................................................331
Terminales...........................................................................................................................332
Procesos de comunicacin para la transmisin de datos a distancia...................................334
Otros perifricos..................................................................................................................334
Tcnicas de entrada/salida (input/output)............................................................................335
Polling (interrogatorio de trfico) ...................................................................................336
Interrupciones (interrupts) ..............................................................................................338
Transferencia DMA ........................................................................................................339
GLOSARIO.........................................................................................................................340
CONCLUSIN......................................................................................................................342
CONCLUSIN FINAL..............................................................................................................343
BIBLIOGRAFA .......................................................................................................................344

253

INTRODUCCIN

254

APUNTES DE CATEDRA
CARRERA:
Ctedra:
Profesor:
AO:

LICENCIATURA EN ANALISIS DE SISTEMAS


INGENIERIA EN SISTEMAS
Procesamiento De Datos I
Lic. Marcelo Martinez
2003

EL NIVEL DEL LENGUAJE ENSAMBLADOR


En los captulos 4, 5 y 6 estudiamos tres niveles, los cuales estn presentes en la
mayora de las computadoras actuales. Este captulo trata fundamentalmente de un cuarto
nivel que tambin est presente en casi todas las computadoras modernas: el nivel del
lenguaje ensamblador. Dicho nivel difiere considerablemente de los niveles de
microprogramacin, de mquina convencional y del sistema operativo, debido a que se
implementa por traduccin y no por interpretacin.
Los programas que convierten un programa escrito de un lenguaje a otro lenguaje
distinto se llaman traductores. El lenguaje en que est escrito el programa original se llama
lenguaje fuente y al que se convierte se llama lenguaje objeto. Ambos lenguajes, el fuente
y el objeto, definen niveles. Si contramos con un procesador que ejecutara directamente
los programas escritos en el lenguaje fuente, no habra ninguna necesidad de traducirlos al
lenguaje objeto.
La traduccin se usa cuando se dispone de un procesador ( lo mismo da que sea fsico
o un intrprete) para el lenguaje objeto, y no se cuenta con uno para el fuente. Si la
traduccin se hace correctamente, la ejecucin del programa traducido dar exactamente
los mismos resultados que dara la ejecucin del programa fuente si dispusiramos de un
procesador para l. Por tanto podemos fabricar un nuevo nivel, en el que no hay
procesador, si traducimos primero los programas escritos para dicho nivel a un nivel objeto
y luego ejecutamos los programas resultantes.
Es importante darse cuenta de la diferencia entre la traduccin, por un lado, y la
interpretacin por otro. En la traduccin, el programa original, escrito en lenguaje fuente,
no se ejecuta directamente. Lo que se hace es convertirlo en un programa equivalente,
llamado programa objeto o mdulo objeto, que se ejecuta despus de que se ha terminado
la traduccin. En la traduccin hay dos pasos bien definidos:
1.
Generacin de un programa equivalente en lenguaje objeto.
2.
Ejecucin del nuevo programa que se ha generado.
Estos dos pasos no tienen lugar simultneamente; el segundo no comienza hasta que
el primero ha terminado. En la interpretacin, en cambio, hay slo un paso: la ejecucin del
programa fuente original. No se genera primero un programa equivalente. La interpretacin
tiene la ventaja de que el programa suele ser ms pequeo y de mayor flexibilidad, pero la
traduccin suele producir programas ms rpidos.
Cuando se est ejecutando el programa objeto, slo hay tres niveles en accin: el de
microprogramacin, el de mquina convencional y el de mquina del sistema operativo. Por
tanto, en tiempo de ejecucin, slo pueden encontrarse en la memoria de la computadora
tres programas: el programa objeto del usuario, el sistema operativo y el microprograma.
Toda traza del programa fuente original se ha desvanecido. As, el nmero de niveles
presentes en tiempo de ejecucin puede diferir del nmero de ellos presentes antes de la
traduccin. Es importante recalcar que, aunque nosotros definamos un nivel por las
instrucciones y construcciones lingsticas que tienen a su disposicin los programadores (y
no por el mtodo de implementacin), otros autores hacen una mayor distincin entre
niveles realizados por intrpretes en tiempo de ejecucin y niveles realizados por
traduccin.

255

INTRODUCCIN AL LENGUAJE ENSAMBLADOR


Los traductores se pueden dividir a grandes rasgos en dos grupos, segn la relacin
que haya entre el lenguaje fuente y el objeto. Cuando el lenguaje fuente es, en esencia, una
representacin simblica de un lenguaje numrico de mquina, el traductor se llama
ensamblador y el lenguaje fuente se llama lenguaje ensamblador. Cuando el lenguaje
fuente es un lenguaje de alto nivel como el C o Pascal, y el lenguaje objeto es un lenguaje
de mquina numrico o una representacin simblica de uno de ellos, el traductor se llama
compilador.

Qu es un lenguaje ensamblador?
Un lenguaje ensamblador puro es aquel en que cada sentencia produce exactamente
una instruccin mquina. En otras palabras, hay una correspondencia biunvoca entre las
instrucciones de mquina y las sentencias del programa en ensamblador. Si cada lnea de
un programa en ensamblador contuviera una sentencia ensamblador y si cada palabra de
mquina contuviera una instruccin de mquina, entonces un programa de n lneas escrito
en ensamblador producira un programa en lenguaje mquina que ocupara n palabras.
La razn por la que se usa el lenguaje ensamblador en lugar de programar el lenguaje
mquina (octal o hexadecimal) consiste en que es mucho ms fcil programar en
ensamblador. Es muy diferente usar nombres y direcciones simblicas que hacerlo en
binario u octal. La mayora de la gente puede recordar que las abreviaturas para la adicin,
la sustraccin, la multiplicacin y la divisin son ADD, SUB, MUL y DIV, pero pocos pueden
recordar que las instrucciones mquina (para la PDP-ll) son 24576..57344,28672 y 29184.
El programador en lenguaje ensamblador slo tiene que recordar los nombres simblicos...
ADD, SUB, MUL, DIV, ya que el ensamblador los traduce a las instrucciones mquina. Por el
contrario, el programador en lenguaje mquina debe recordar, o consultar constantemente,
los valores numricos.
Los mismos comentarios se aplican a las direcciones. El programador en lenguaje
ensamblador puede dar nombres simblicos a las posiciones de memoria y dejarle al
ensamblador la tarea de suministrar los valores numricos correctos. El programador en
lenguaje mquina debe trabajar siempre con los valores numricos de las direcciones. En
consecuencia, nadie programa hoy da en lenguaje mquina, aunque se haca hace aos,
antes de que se inventaran los ensambladores.
Los lenguajes ensambladores tienen otra propiedad, adems de la Correspondencia
uno a uno entre las sentencias en ensamblador y las instrucciones mquina, que los
distinguen de los lenguajes de alto nivel. El programador en ensamblador tiene acceso a
todos los recursos e instrucciones de la mquina ala que se aplica, pero no el programador
en un lenguaje de alto nivel. Por ejemplo, si la mquina tiene un indicador de
desbordamiento, el programa en lenguaje ensamblador puede examinarlo; uno en Pascal no
puede hacerlo directamente. Si hay conmutadores en la consola del operador, un programa
en ensamblador puede leer su estado. Tal programa puede ejecutar todo el juego de
instrucciones de la mquina sobre la que se aplica, pero uno en lenguaje de alto nivel no
puede hacerlo. En resumen, todo lo que puede hacerse en lenguaje mquina puede hacerse
tambin en ensamblador, pero muchas instrucciones, registros y otras cosas por el estilo no
estn disponibles para que el programador en lenguaje de alto nivel las use. Los lenguajes
para la programacin de sistemas suelen ser un hbrido entre ambos tipos, con la sintaxis
de un lenguaje de alto nivel pero con las posibilidades de acceso a la mquina de un
lenguaje ensamblador.
Es conveniente hacer explcita una diferencia final, la cual consiste en que un
programa en lenguaje ensamblador slo puede correr en una familia de mquinas, mientras
que un programa escrito en un lenguaje de alto nivel puede, en potencia, correr en muchas
mquinas. La habilidad de poder mover software de una maquina a otra, resulta de gran
importancia prctica para muchas aplicaciones.

256

Formato de una sentencia en lenguaje ensamblador


Aunque la estructura de una sentencia de un lenguaje ensamblador refleja muy de
cerca la estructura de la instruccin de mquina que representa, los lenguajes
ensambladores para mquinas y niveles diferentes se parecen lo suficiente como para
permitir una explicacin detallada del lenguaje ensamblador en general. En la figura 7-1 se
presentan fragmentos de programas en lenguaje ensamblador para el 80386 y el 68030, los
cuales realizan el clculo N = I + J + K. En ambos casos la cuenta lo realizan las
instrucciones colocadas arriba de los puntos. Las sentencias que estn por debajo de los
puntos no son representaciones simblicas de instrucciones de mquina, sino rdenes al
ensamblador para que reserve memoria para las variables I, J, K y N. Las sentencias que
son rdenes al ensamblador se llaman seudo-instrucciones.
Campo etiqueta

Campo operacin

Campo operando

Campo de comentario

FORMULL:

MOV
ADD
ADD
MOV
.
.
.
DD
DD
DD
DD

EAX, I
EAX, J
EAX, K
N, EAX

;Guarda I en EAX
;Suma J a EAX
;Suma K a EAX
;Almacena I + J + K en N

2
3
4
0

;Reserva
;Reserva
;Reserva
;Reserva

I:
J:
K:
L:

4
4
4
4

byte
byte
byte
byte

V
V
V
V

inicial
inicial
inicial
inicial

2
3
4
0

(a)
FORMUL:

I:
J:
K:
L:

MOVE.L
ADD.L
ADD.L
MOVE.L
.
.
.
DC.L
DC.L
DC.L
DC.L

I,DO
J,DO
K,DO
DO, N

;Carga I en DO
;Suma J a DO
;Suma K a DO
;Almacena I + J + K en N

2
3
4
0

;Reserva
;Reserva
;Reserva
;Reserva

(b)
Fig. 7-1. Clculo de la frmula N = I + J + K. (a) En un 80386. (b) En un 68030.

4
4
4
4

byte
byte
byte
byte

V
V
V
V

inicial
inicial
inicial
inicial

2
3
4
0

Las instrucciones en ensamblador tienen cuatro partes: campo de etiqueta, campo de


operacin, campo de operandos y campo de comentarios. Las etiquetas, que sirven para dar
nombres simblicos a las direcciones, se necesitan en sentencias ejecutables para que se
pueda saltar a ellas. Tambin se requieren en las seudo instrucciones de asignacin de
memoria (v .g. , DC y DD) para permitir que los datos all almacenados sean accesibles por
medio de un nombre simblico. Si una sentencia tiene una etiqueta, sta comienza (por lo
general) en la columna 1.
En la figura 7-1(a) se muestran cinco etiquetas: FORMUL, I, J, K y N, mis- mas que
aparecen en la figura 7-1(b). Ntese que el lenguaje ensamblador de Motorola requiere
que se pongan dos puntos despus de cada etiqueta, mientras que en el de lntel no es
necesario. Esta diferencia no tiene nada de particular, slo que los diseadores de cada
ensamblador tuvieron gustos diferentes. Si hubieran trabajado para la otra compaa, el
lenguaje ensamblador de lntel habra usado los dos puntos y el de Motorola no.
El diseador de cada ensamblador es libre de elegir cualquier convencin que desee
en esta rea. No hay nada en la arquitectura subyacente que sugiera una u otra eleccin

257

Una caracterstica negativa de algunos ensambladores es que el nmero de caracteres


de sus etiquetas est limitado a seis u ocho. Por el contrario, la mayora de los lenguajes de
alto nivel permiten usar nombres de longitud arbitraria. El uso de nombres largos y bien
escogidos hace los programas mucho ms legibles e inteligibles por otras personas (vase
fig. 2-2 como ejemplo de ello).
El campo de operacin tiene una abreviatura simblica del cdigo de operacin (si la
sentencia es una representacin simblica de una instruccin mquina) o una seudo
instruccin (si la sentencia es una orden al ensamblador). La seleccin de un nombre
apropiado es slo cuestin de gusto, por lo que diferentes diseadores de lenguaje
ensamblador a menudo hacen distintas elecciones. En el caso de Intel eligieron MOV,
mientras que Motorola prefiri MOVE.
Tanto el 80386 como el 68030 permiten bytes, palabras y operandos largos. Cmo
sabe el ensamblador qu longitud usar? De nueva cuenta los dos disea- dores escogieron
soluciones distintas, lntel dio a sus registros diferentes nombres, de manera que EAX se
utiliza para mover elementos de 32 bits, AX para 16 bits y AL o AH para 8 bits. En
contraste, Motorola decidi agregar a cada cdigo de operacin un sufijo.L para palabras
largas, .W para palabras y, .B para bytes. Ambas formas son vlidas, aunque destacan la
naturaleza arbitra- ra del diseo de lenguajes.
Los dos ensambladores difieren tambin en el nombre de la seudo instruccin que se
usa para reservar espacio para datos. lntel escogi DD (Define Da- os) y Motorola le
nombr DC (Define Constante). Una vez ms, slo es cuestin de gustos.
El campo de operandos de una sentencia en ensamblador se usa para especificar las
direcciones y registros que la instruccin de mquina usa como operar dos. El campo de
operandos de una instruccin de suma de enteros dice qu s va a sumar a qu. El campo de
operandos de una instruccin de salto dice dnde hay que saltar .El campo de operandos de
una seudo instruccin depende de ella (por ejemplo, cunta memoria hay que reservar).
El campo de comentarios ofrece a los programadores oportunidad de explicar el
funcionamiento del programa en beneficio de otros programadores, par que lo usen o
modifiquen posteriormente. Un programa en lenguaje ensamblador sin este tipo de
documentacin resulta casi incomprensible para cualquier programador, con frecuencia
hasta para el propio autor. El campo de comentarios slo es para el consumo humano; no
tiene ningn efecto en el proceso c ensamble o en el programa generado.

Comparacin entre el. lenguaje ensamblador y los lenguajes de alto


nivel
Existe un mito muy popular segn el cual los programas que se usan
mucho( especialmente los grandes, deberan escribirse en ensamblador por razones de
eficiencia. Aunque fue acertado en un tiempo, ya no lo es ms. Es instructivo con parar el
sistema MUL TICS con el sistema de tiempo compartido de la 360/6' denominado TSS/67.
Ambos sistemas operativos se empezaron por la misma poca ( a mediados de la dcada de
los sesenta) y tienen aproximadamente
mismo tamao (enorme). La mayor parte del MUL TICS (95OJo) se escribi e un
lenguaje de alto nivel (el PL/l), mientras que el TSS/67 se escribi totalmente en
ensamblador .
Un gran sistema operativo como el MUL TICS es una prueba de fuego para un
lenguaje de alto nivel. Un sistema operativo debe controlar todos los dispositivos de E/S,
hacer frente a situaciones muy criticas en tiempo, manipular grandes bases de datos y
hacer muchas otras tareas; por eso es crucial obtener, buenas prestaciones. Si los
lenguajes de alto nivel pueden pasar esta prueba tan critica, est claro que habr pocas
aplicaciones en que se puedan demostrar las ventajas que se ganaran usando el lenguaje
ensamblador. Una excepcin sera; por ejemplo, la programacin del microprocesador que
controla una lavador debido al gran nmero de unidades vendidas.
Los resultados de ambos proyectos pueden compararse en forma elegante tenemos en
cuenta que se tard aproximadamente el mismo tiempo en ponerlos a funcionar. Sin
embargo, MUL TICS fue escrito por 50 personas con un costo estimado de lO millones de
dlares, mientras el TSS/67 necesit 300 personas su costo estimado fue de 50 millones de
258

dlares (Graham, 1970). Salta a la vista que el uso del PL/ 1 ahorr millones de dlares al
proyecto MUL TICS.
Varios estudios han mostrado que el nmero de lneas de cdigo depurado que puede
producir un programador al mes en un proyecto que dure varios aos es de unas 100 a 200
lneas, independientemente del lenguaje de programacin que use (Corbat, 1969). Slo se
puede esperar un rendimiento ms alto en programas pequeos. Como una sentencia en
PL/l equivale a 5 o lO sentencias en ensamblador, la productividad de un programador PL/l
ser 5 o 10 veces mayor que la de uno que programe en ensamblador. Esto mismo es
vlido para cualquier otro lenguaje de alto nivel.
Otra razn de peso en contra de la programacin en lenguaje ensamblador es que casi
no se entiende un programa escrito por otra persona. Un listado completo del MUL TICS en
PL/l tiene unas 3000 pginas, algo bastante difcil de digerir en una tarde. Sin embargo,
asimilar semejante volumen es poca cosa en comparacin con la lectura de 30 000 pginas
de ensamblador. Aunque nadie intentar nunca leer el listado del MUL TICS completo, la
gente puede in- tentar comprender determinados procedimientos, que tienen en promedio 4
pginas de PL/l. Es corriente que, en proyectos largos, cambie 15 % del personal al ao. En
consecuencia, despus de 5 aos, slo unos pocos de los programadores originales
permanecern an en este trabajo. Si los programadores nuevos no entendieran los
programas de sus predecesores, el proyecto se encontrara en una situacin muy
embarazosa.

Afinacin de programas
Ciertos estudios han mostrado que, en la mayora de los programas, un porcentaje
muy bajo del cdigo total es el encargado de un gran porcentaje del tiempo de ejecucin
(Dardner y Heller, 1970) .Es corriente que el 1 % del programa se ocupe del 50 % del
tiempo de ejecucin y que el 10 % del programa lo sea del 90 % de dicho tiempo. Una
situacin corriente en un compilador es cuando la bsqueda en la tabla de smbolos se lleva
ms tiempo que todo el resto de la compilacin.
Supongamos que se necesitan lO aos-hombre para escribir cierto compilador grande
en un lenguaje de alto nivel, y que dicho compilador necesita 100 segundos para compilar
cierto programa de prueba. Escribir el compilador en ensamblador completamente requerira
de 50 a 100 aos-hombre, debido ala baja productividad de los programadores en
ensamblador. Sin embargo, el programa de prueba se compilara en 33 segundos, ya que
un programador inteligente puede mejorar a un buen compilador por un factor de 3. Esta
situacin se ilustra en la figura 7-2.
Aos-hombre necesarios
para producir el programa
50
10

Tiempo de ejecucin del


programa en segundos
33
100

Lenguaje ensamblador
Lenguaje
orientado
a
problemas
Mtodo mixto antes de pulir
Parte critica 10%
1
90
Resto 90%
9
10
Total
10
100
Mtodo mixto despus de pulir
Parte critica 10%
6
30
Resto 90%
9
10
Total
15
40
Fig. 7-2. comparacin entre la programacin en ensamblador y en lenguaje orientado a problemas, con ajuste y sin l.

Con base en la observacin anterior, de que slo una pequea parte del cdigo es la
responsable de la mayor parte del tiempo de ejecucin, se puede tener otro enfoque.
Primero, el programa se escribe en un lenguaje de alto nivel. Luego se hace una serie de
mediciones para establecer las partes del programa que ocuparn la mayor parte del tiempo
de ejecucin. Estas mediciones incluirn normalmente el uso del reloj del sistema para

259

calcular la cantidad de tiempo que se gasta en cada procedimiento, la cuenta del nmero de
veces que se ejecuta cada iteracin y otros pasos similares.
Por ejemplo, supongamos que el 10 % del programa ocupa el 90 % del tiempo de
ejecucin. Esto significa que para un trabajo de 100 segundos, 90 se gastan en el 10 %
critico y lO en el 90 % restante del programa. El 10 % critico se puede mejorar
rescribindolo en ensamblador. Este proceso se llama afinacin y se ilustra en la figura 72. Aqu se necesitan 5 aos-hombre ms para rescribir los procedimientos crticos, pero su
tiempo de ejecucin se reduce de 90 a 30 segundos.
Resulta instructivo comparar el mtodo mixto entre lenguajes de alto nivel y
ensamblador con la versin en lenguaje ensamblador puro (fig. 7-2). El ltimo es 20 % ms
rpido, pero tiene un precio de ms del triple. Adems, la ventaja del mtodo mixto es
realmente mayor que la indicada, ya que la escritura de un procedimiento en ensamblador a
partir de uno escrito en lenguaje de alto nivel y ya depurado es, de hecho, mucho ms fcil
que escribir el mismo procedimiento en ensamblador desde el principio. En otras palabras,
la estimacin de 5 aos- hombre para rescribir los procedimientos crticos es en extremo
conservadora. Si realmente se necesitara slo 1 ao-hombre, la razn de costos entre el
mtodo mixto y el de ensamblador puro sera mayor de 4 a 1 en favor del mtodo mixto.
Un programador que use un lenguaje de alto nivel no est sumergido en una
inmensidad de bits y, a veces, puede ver aspectos del problema que permitan verdaderas
mejoras. Esta situacin no ocurre con frecuencia con los programadores en ensamblador,
que normalmente se ocupan de hacer malabarismos con las instrucciones para ahorrarse
unos pocos microsegundos. Graham (1970) nos cuenta que cierto procedimiento en PL/1 de
MUL TICS se rescribi en 3 meses. de manera que la nueva versin era 26, veces ms chica
y 50 veces ms rpida que la original, as como otro que se hizo 20 veces ms pequeo y
40 veces ms rpido con 2 meses de trabajo.
Corbat (1969) describe un procedimiento en PL/l para el manejo de un tambor que
se redujo de 50000 a 10000 palabras de cdigo, compilado en menos de un mes y un
programa de control de E/S que se redujo de 65000 a 30 000 palabras de cdigo
compilado, con una mejora en la velocidad de un factor 8 en cuatro meses. Esto muestra
que los programadores en lenguaje de alto nivel tienen una visin global de lo que estn
haciendo, y. por ello es mucho ms fcil que se les ocurran ideas que lleven a algoritmos
totalmente diferentes y mucho mejores.
Despus de esta introduccin, uno se pregunta maravillado: "Por qu molestarse
estudiando los ensambladores si la programacin en ensamblador tiene tantos y tan serios
inconvenientes?" Al menos existen tres razones. La primera es que el xito o fracaso de un
proyecto importante puede depender de la consecucin de un factor de mejora de 5 o 10 en
algn procedimiento crtico, por lo que es importante estar en condiciones de escribir un
buen cdigo en ensamblador cuando sea absolutamente necesario. La segunda es que, en
ocasiones, la programacin en ensamblador es la nica alternativa, debido a la falta de
memoria (las calculadoras de bolsillo tienen una CPU, pero pocas tienen un megabyte de
memoria y, menos an, un disco duro). La tercera razn es que un compilador debe
producir una salida que utilice el ensamblador, o realizar el proceso de ensamble por s
mismo. De ah que resulte esencial entender el lenguaje ensamblador para comprender
cmo funcionan los compiladores.

260

EL PROCESO DE ENSAMBLAJE
En las siguientes secciones describiremos brevemente cmo funciona un ensamblador.
Aunque cada mquina tiene diferente lenguaje ensamblador, la similitud del proceso de
ensamblaje en las diferentes mquinas nos permite describirlo en trminos generales.

Ensambladores de dos pasadas


Debido a que un programa en ensamblador consta de una serie de sentencias de una
lnea, parece natural tener un ensamblador que lea una sentencia, la traduzca a lenguaje de
mquina y escriba el cdigo de mquina generado en un archivo y la porcin del listado
correspondiente, si la hay, en otro. El proceso se repetira hasta que todo el programa se
haya traducido. Por desgracia, este mtodo no funciona.
Considrese la situacin en la que la primera sentencia sea un salto a L. El
ensamblador no puede ensamblar esta instruccin hasta que conozca la direccin de la
sentencia L. La sentencia L puede estar cerca del fin del programa, lo que impide que el
ensamblador encuentre la direccin sin leer primero casi todo el programa. Esta dificultad
se llama referencia adelantada, porque el smbolo L se ha usado antes de que se haya
definido; es decir, se ha hecho referencia aun smbolo cuya definicin aparecer ms tarde.

261

Las referencias adelantadas pueden tratarse de dos maneras. La primera es que el


ensamblador podra leer el programa fuente dos veces. Cada lectura del programa fuente se
llama una pasada, y todo traductor que lea el programa de entrada dos veces se llama un
traductor de dos pasadas. En la pasada 1, el ensamblador de dos pasadas colecciona todas
las definiciones de smbolos, incluyendo las etiquetas de las sentencias, y las almacena en
una tabla. En el momento en que empieza la segunda pasada, ya se conocen los valores de
todos los smbolos; ya no existe el problema de las referencias adelantadas y puede leerse
cada sentencia, ensamblarla y obtener una salida.. Este mtodo es conceptualmente
sencillo, aunque requiere una pasada adicional sobre la entrada.
El segundo mtodo consiste en intentar hacer el ensamblaje en una pasada, a pesar
de todo. Cuando se encuentra una sentencia que no puede ser ensamblada por contener
una referencia adelantada, no se genera ninguna salida; en vez de hacerlo, se introduce la
sentencia con la referencia adelantada en una tabla, con la indicacin de que todava no ha
sido ensamblada. Al final del ensamblaje, todos los smbolos habrn sido definidos, de modo
que todas las sentencias de dicha tabla pueden ensamblarse.
Este ltimo mtodo genera la salida en distinto orden que en el de las dos pasadas. Si
al ensamblaje le sigue una carga, el cargador puede reordenar las piezas de la salida para
dejarlas en el orden correcto. Por tanto, esta objecin no tiene importancia. El problema del
ensamblador de una pasada estriba en que si hay muchas sentencias que contengan
referencias adelantadas, la tabla que debe contener todas las sentencias no ensambladas
puede hacerse demasiado grande y no caber en memoria. Este mtodo presenta un grado
de complejidad considerablemente mayor y tiene dificultades para imprimir un listado,
incluyendo el cdigo objeto producido. Por estas razones, la mayora de los ensambladores
son de dos pasadas.

La primera pasada
La funcin principal de la primera pasada es construir lo que se llama tabla de
smbolos, donde se guardan los valores de todos los smbolos. Un smbolo es una etiqueta o
un valor al que se le asigna un nombre simblico por medio de una seudo-instruccin como
ESPACIO EQU 100
Al asignar un valor a un smbolo que est en el campo de etiqueta de una instruccin,
el ensamblador debe conocer la direccin que tendr dicha instruccin cuando se ejecute el
programa. Para conocer la direccin en tiempo de ejecucin de la instruccin que se
ensambla, el ensamblador mantiene una variable durante el ensamblaje llamada contador
de posiciones de instruccin o ILC. Esta variable se pone a O al comienzo de la primera
pasada y se le aade la longitud de cada una de las instrucciones que se procesan, como se
muestra en la figura 7-3. Este ejemplo es para el 80386; como la diferencia entre ambos
no es muy importante, no es necesario dar el ejemplo para Motorola.
Campo
Campo
etiqueta operacin
.
.
.
SUSANA: MOV
MOV
MOV
IMUL
IMUL
IMUL
ADD
ADD
MOV
JMP

Campo
operandos

EAX, I
EAX, J
EAX, K
EAX, EAX
EBX, EBX
ECX, ECX
EAX, EBX
EAX, ECX
N, EAX
YA

Campo comentarios

Longitud ILC antes


instruccin sentencia

EAX = I
5
EBX = j
6
ECX = K
6
EAX = I * I
2
EBX = J * J
3
ECX = K * K
3
EAX = I * I + J * J
2
EAX = I * I + J * J + K * K 2
N=I*I+J*J+K*K
5
SALTAR A YA
5

100
105
111
117
119
122
125
127
129
134

262

Fig. 7-3. El Contador de Posiciones de Instrucciones (ILC) va tomando el valor de la instruccin donde se
cargar la instruccin en memoria. En este ejemplo, las sentencias anteriores a SUSANA ocupan 100 byte.
Algunos ensambladores permiten que el programador escriba instrucciones con
direccionamiento inmediato, aunque no exista ninguna instruccin correspondiente en la
mquina real. Tales instrucciones con operando "seudoinmediato" se tratan como sigue. El
ensamblador reserva memoria al final del programa para el operando inmediato y genera
una instruccin que hace referencia a ella. Por ejemplo, la IBM 370 no tiene instrucciones
inmediatas; sin embargo, los programadores pueden escribir:
L 14, = F'5'
Para cargar el registro 14 con una palabra completa que tenga un constante de valor
5. En esta forma el programador evita escribir de manera explcita una instruccin DC para
ubicar una palabra con un valor inicial de 5. Se les llama literales a las constantes para las
cuales el ensamblador reserva memoria automtica. Adems de ahorrar al programador un
poco de escritura, las literales hacen ms legibles los programas al hacer que el valor de la
constante aparezca en la instruccin fuente. La primera pasada del ensamblador debe
construir una tabla con todas las literales que utiliza el programa. Como las dos familias
utilizadas en uestros ejemplos tienen instrucciones inmediatas, sus ensambladores no
proporcionan literales. Hoy en da, las instrucciones inmediatas son muy comunes, pero
antes eran poco usuales. Es muy probable que el uso extendido de literales haya hecho ver
a los diseadores que el direccionamiento inmediato era una buena idea.
En la mayora de los ensambladores, la primera pasada utiliza por lo menos dos
tablas: la tabla de smbolos y la de cdigos de operacin. En caso de ser necesaria, se usa
tambin la tabla de literales. La de smbolos tiene, como se muestra en la figura 7-4, un
elemento para cada smbolo. Los smbolos se definen, bien usndolos como etiquetas, bien
por definicin explcita (por ejemplo, EQU en el 370). Cada elemento de la tabla de smbolos
contiene el smbolo (o un apuntador a l), su valor numrico y, algunas veces, otra
informacin. Esta informacin adicional puede incluir:
1. Longitud del campo de datos asociado al smbolo.
2. Bits de reubicacin. (Cambia el valor de smbolo si el programa se carga en una
direccin distinta a la que se supuso ensamblador?)
3. Si el smbolo ha de ser accesible o no a un procedimiento externo.
Smbolo

Valor

Otra
informacin

SUSANA:
100
MARIA:
111
MARISA:
125
CARMEN:
129
.
.
.
.
.
.
Fig. 7-4. Tabla de smbolos para
de la figura 7-3.

.
.
.
el programa

La tabla de los cdigos de operacin contiene un elemento por cada cdigo de


operacin simblico (nemotcnico) del lenguaje ensamblador. La figura 7-5 muestra parte
de una tabla de cdigos de operacin. Cada elemento contiene el cdigo de operacin
simblico, su valor numrico, su longitud y un nmero de clase que divide los cdigos de
operacin en grupos, conforme al nmero y tipo de operandos.
Cdigo de
Primer
Segundo Cdigo de operacin Longitud de
Clase de
operacin operando operando
hexadecimal
la instruccin instrucciones
AAA
--37
1
6

263

ADD
EAX
IMMED32
05
5
ADD
REG
REG
01
2
AND
EAX
IMMED32
25
5
AND
REG
REG
21
2
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Fig. 7-5. Extractos de una tabla de cdigos de operacin en un ensamblador 80386

4
19
4
19
.
.
.

Como ejemplo, considrese al cdigo de operacin ADD. Si una instruccin ADD tiene
al registro EAX como primer operando y una constante de 32 bits (INMED32) como
segundo, se usa entonces el cdigo de operacin O5H y la instruccin tiene una longitud de
5 bytes. (En la figura no se muestran constantes que pueden expresarse en 8 o 16 bits y
que utilizan diferentes cdigos de operacin.) Si se usa ADD con dos registros como
operandos, la instruccin tiene dos bytes con un cdigo de operacin O1H. La clase de
instruccin (arbitraria) 19 se asignara a todas las combinaciones cdigo de operacinoperandos que siguieran las mismas reglas y se procesaran en la misma forma que una
instruccin ADD con dos registros como operandos.
Si se requiere de literales, durante el ensamblaje se mantiene una tabla de stas,
creando nuevos elementos cada vez que se encuentra una. Despus de la primera pasada,
dicha tabla se ordena para eliminar las literales duplicadas.
La figura 7-6 muestra un procedimiento que puede servir de base a la primera
pasada de un ensamblador. El estilo de programacin es digno de mencin en s mismo. Los
nombres de los procedimientos se han elegido de manera que den una idea ms o menos
precisa de lo que hacen. Ms importante an, la figura 7-6 representa un esbozo de la
primera pasada que, aunque no est completo, es bueno para empezar. Es lo bastante
corto como para que se entienda con facilidad y se vea claramente que lo siguiente que
debe hacerse es escribir los procedimientos que usa.

264

Algunos de estos procedimientos son bastante cortos, como MiraSiHay- Etiqueta, que
entrega la etiqueta como cadena de caracteres si la hay y una cadena de espacios en blanco
si no la hay. Otros procedimientos, como tipo 0 y tipo 1, pueden ser ms largos y llamar a
otros procedimientos a su vez. En general, las clases no sern dos, por supuesto, sino que
dependern del lenguaje que se ensambla.
La estructuracin de los programas de este modo tiene otras ventajas, adems de la
facilidad de programacin. Si el ensamblador lo escribe un grupo de gente, los
procedimientos pueden repartirse entre sus miembros. Todos los detalles (engorrosos)
sobre la obtencin de la entrada estn escondidos dentro de LeeSiguienteSentencia. Si
tienen que hacer algn cambio (por ejemplo, debido a un cambio de sistema operativo),
slo resultar afectado el procedimiento auxiliar y no se necesitara hacer cambios
directamente en el procedimiento PrimeraPasada.
En algunos ensambladores, las sentencias se almacenan en una tabla despus de
ledas. Si la tabla se llenara, debera entonces escribirse en un disco varias veces. Por otra

265

parte, si el programa que est siendo ensamblado es tan corto como para caber en la tabla,
la segunda pasada puede obtener sus entradas de sta, eliminando las operaciones de E/S
en el disco.
Cuando se lee seudo instruccin END, se termina la primera pasada. Entonces se
ordenan la tabla de smbolos y la de literales, si se necesita. La tabla de literales ordenados
se examina para ver si hay duplicaciones que se puedan eliminar.

La segunda pasada
La funcin de la segunda pasada es generar el programa objeto y, posiblemente,
imprimir el listado del ensamblaje. Adems, debe producir cierta informacin necesaria para
que el programa ligador enlace procedimientos ensamblados en momentos diferentes. La
figura 7-7 muestra un procedimiento para efectuar la segunda pasada.

El procedimiento correspondiente a cada clase de instruccin sabe cuntos operandos


puede tener esa clase y llama al procedimiento EvalaExpresin ( que no se muestra) el
nmero de veces apropiado. El procedimiento EvalaExpresin ha de convertir la expresin
simblica en un nmero binario. Encontrar primero los valores de los smbolos y las
direcciones de los literales en las tablas respectivas. Una vez que se conocen los valores
numricos, se evala la expresin. Hay muchas tcnicas con las que se evalan expresiones
aritmticas. Un mtodo (descrito en el captulo 5) consiste en convertir la expresin en
notacin polaca inversa y evaluarla mediante una pila.

266

Una vez que se conoce el valor numrico del cdigo de operacin y los valores de los
operandos, se puede ensamblar la instruccin completa, la que entonces se coloca en un
buffer de salida, para luego escribirla en un disco cuando ste se llene.
La sentencia fuente original y el cdigo objeto generado a partir de ella (en octal o en
hexadecimal) se imprimen o se guardan para su impresin posterior . Despus de que se
haya ajustado el CPI, puede extraerse la siguiente instruccin.
Hasta ahora supusimos que el programa fuente no contiene ningn error . Cualquiera
que haya escrito alguna vez un programa en cualquier lenguaje, sabe hasta que punto es
realista dicha suposicin. Algunos de los errores mas comunes son:
1. Se ha usado un smbolo no definido.
2. Se ha definido un smbolo mas de una vez.
3. El nombre del campo de cdigo de operacin no es un cdigo de operacin vlido
4. No se le han suministrado al cdigo de operacin suficientes operandos
5. Se le han suministrado demasiados operandos al cdigo de operacin
6. Un nmero octal contiene un 8 o un 9
7. Uso no permitido de registros (por ejemplo, salto a un registro)
8. Falta de sentencia END
Los programadores son ms ingeniosos cuando se ponen a buscar nuevas formas de
cometer errores. Muchas veces los errores debidos a smbolos indefinidos se deben a
errores de escritura y un ensamblador muy inteligente podra intentar figurarse cul de los
smbolos definidos se parece ms al indefinido y usarlo en su lugar. Poco puede hacerse
para corregir la mayora de los otros errores. Lo mejor que puede hacer un ensamblador
con una sentencia errnea es imprimir un mensaje de error e intentar continuar
ensamblando.

La tabla de smbolos
Durante la primera pasada del proceso de ensamblaje, el ensamblador acumula
informacin sobre los smbolos y sus valores en la tabla de smbolos para que la segunda
pasada los busque. Hay varias formas de organizar la tabla de smbolos: veremos algunas
de ellas en esta seccin. Todos los mtodos intentan simular una memoria asociativa que,
desde el punto de vista conceptual, es un conjunto de pares (smbolo, valor). Dado un
smbolo, la memoria asociativa debe producir el valor .
El mtodo ms sencillo de realizacin ( secuencial ) es organizar la tabla como un
vector de pares, el primer elemento de los cuales es el smbolo (o apunta a l) y el segundo
el valor (o un apuntador a l). Dado un smbolo que buscar, la rutina de la tabla de
smbolos simplemente busca en forma lineal en la tabla hasta que lo encuentra. Este
mtodo es fcil de programar, pero es lento, ya que en promedio se ha de recorrer la mitad
de la tabla.
Otro mtodo de organizar la tabla de smbolos consiste en ordenar los smbolos y usar
un algoritmo de bsqueda binaria para encontrarlos. El algoritmo funciona comparando el
elemento central de la tabla con el smbolo. Si ste se localiza en orden alfabtico por
delante de aqul, hay que proseguir la bsqueda en la primera mitad de la tabla, y si est
despus en la segunda mitad. Si es igual, la bsqueda termina.
Suponiendo que el elemento central de la tabla no es igual al smbolo buscado, al
menos sabemos en qu mitad seguir buscando. Ahora se puede aplicar la bsqueda binaria
a la mitad apropiada, con lo que se obtendr la coincidencia o el cuarto de tabla donde
seguir buscando. Al aplicar este algoritmo recursivamente, la bsqueda en una tabla de n
elementos requerir unos log2 n intentos. Evidentemente, este mtodo es mucho ms
rpido que la bsqueda lineal, pero requiere ordenar primero la tabla.
Un mtodo totalmente diferente de simular una memoria asociativa es la tcnica
denominada codificacin por transformacin. Este mtodo requiere una funcin de
transformacin que haga corresponder a cada smbolo un nmero entre 0 y k -1. Una de las
funciones posibles ser hacer el 0 EXCLUSIVO de todos los cdigos ASCII de los caracteres
(o de palabras que contengan grupos de caracteres) y luego tomar el resto al dividir este
resultado intermedio entre k. De hecho, valdr casi cualquier funcin de la entrada que d

267

una distribucin uniforme de los valores de salida. Los smbolos se pueden almacenar en
una tabla de k elementos numerados de 0 a k - 1. Todos los pares (smbolo, valor) cuyo
smbolo se transforme en i se almacenarn en una lista encadenada a la que apunte el
ejemplo i de la tabla. Con n/k smbolos y k elementos en la tabla, la media de las longitudes
de las listas ser n. Eligiendo k aproximada- mente igual a n, los smbolos se encontrarn
con frecuencia en el primer elemento de la lista correspondiente. Ajustando k podremos
reducir el tamao de la tabla al costo de bsquedas ms lentas. La codificacin por
transformacin de los smbolos se ilustra en la figura 7-8.

268

MACROS
Los programadores de lenguaje ensamblador necesitan repetir frecuentemente grupos
de instrucciones dentro de un programa. La forma ms sencilla de resolver el problema es
escribirlas sin ms, pero la verdades que, si el nmero de sentencias es muy elevado o la
secuencia aparece muchas veces en el programa, el procedimiento puede resultar bastante
tedioso.
Una alternativa es convertir la secuencia en un procedimiento y llamarlo cada vez que
se necesite. Esta estrategia tiene el inconveniente de que requiere una instruccin de
llamada y otra de retorno cada vez que se ejecute esta secuencia. Si las secuencias son
cortas (por ejemplo, dos instrucciones) pero se usan con bastante frecuencia, la llamada a
procedimiento puede disminuir. significativamente la velocidad de ejecucin del programa.
Las macros proporcionan una solucin sencilla y eficiente al problema que plantean las
secuencias idnticas o casi idnticas de instrucciones que se usan repetidamente en un
programa.

Definicin, llamada y expansin de una macro


La definicin de macro es un mtodo que permite asignar un nombre a una porcin de
texto. Despus de haber definido una macro, el programador puede escribir el nombre de la
macro en vez del trozo del programa. Una macro es, realmente, una abreviatura de un
trozo de texto. La figura 7-9(a) muestra un programa en lenguaje ensamblador de la
80386 que intercambia el contenido de las variables P y Q dos veces. Estas secuencias se
definen como macros, como se observa en la figura 7-9(b). Despus de su definicin, cada
vez que aparezca CAMBIA, ser remplazada por las cuatro lneas siguientes:
MOV
MOV
MOV
MOV

EAX,P
EBX,P
Q,EAX
P,EBX

El programador ha definido la macro CAMBIA como abreviatura de las cuatro


sentencias anteriores.
MOV EAX, P
SWAP MACRO
MOV EBX, Q
EAX, P
MOV Q, EAX
EBX, Q
MOV P, EBX
Q, EAX
.
P, EBX
.
.
.
.
MOV EAX, P
SWAP
MOV EBX, Q
.
MOV Q, EAX
.
MOV P, EBX
SWAP
(a)
(b)
Fig. 7-9. Cdigo en lenguaje ensamblador del Intel 80386 para
intercambiar P y Q dos veces. (a) Sin usar macro. (b) Usando una macro.
Aunque los distintos ensambladores usan notaciones ligeramente diferentes para
definir macros, todos requieren las mismas partes bsicas:
1. Un encabezado de macro que proporciona el nombre de la macro que va a
definirse.
2. El texto que forma el cuerpo de la macro.
3. Una seudo instruccin que marque el fin de la definicin (por ejemplo, ENDM).
Cuando un ensamblador encuentra una definicin de macro, la asla en una tabla de

269

definiciones de macros para su uso posterior. Desde ese momento, siempre que el nombre
de la macro (CAMBIA, en el ejemplo de la figura 7-9) aparezca como cdigo de operacin,
el ensamblador lo remplazar por su cuerpo. El uso del nombre de una macro como cdigo
de operacin se denomina llamada a macro y su reemplazo por el cuerpo, expansin de
macro.
La expansin de una macro se produce durante el proceso de ensamblaje, no durante
el proceso de ejecucin del programa. Este punto es muy importante. El programa de la
figura 7-9(a) y el de la figura 7-9(b) producirn exactamente el mismo cdigo mquina.
Si se considera solamente el programa en lenguaje mquina, es imposible decir si se han
utilizado macros en su generacin, ya que la expansin de macros se termin y sus
definiciones fueron eliminadas al finalizar el proceso de ensamblaje.
Las llamadas a macros no deben confundirse con las llamadas a procedimientos. La
diferencia bsica reside en el hecho de que las primeras indican al ensamblador que
remplace el nombre de la macro por su cuerpo, mientras que una llamada a un
procedimiento es una instruccin de mquina que ser insertada en el programa objeto, y
ms tarde ser ejecutada para llamar al procedimiento. La figura 7-10 compara llamadas a
macro con llamadas a procedimiento.
Item

Llamado a
macro

Momento en el que se hace

Durante el
ensamblaje

Llamada a
procedimiento
Durante la
ejecucin del
programa objeto

El cuerpo se inserta en el
programa objeto en todos los
S
sitios donde aparece el
nombre
Es una instruccin de llamada
a procedimiento insertada en
No
el programa objeto
Debe usarse una instruccin
retorno para devolver el
No
control a la sentencia que
sigue a la llamada
Nmero de copias del cuerpo
Una por cada
que aparecen en el programa
llamada a la
objeto
macro
Fig. 7-10. Comparacin entre llamadas a macro y a procedimientos.

No

Aunque las macros generalmente se expanden en la primera pasada del proceso de


ensamblaje, puede ser ms simple desde el punto de vista conceptual pensar en un
ensamblador con una pasada anterior a la primera, durante la cual se salvan las definiciones
de macro y se expanden las llamadas. Desde este punto de vista, el programa fuente se lee
y se transforma en otro programa en el que todas las definiciones de macro se han
eliminado y en el que todas las llamadas se han sustituido por sus cuerpos. La salida
resultante, un programa en lenguaje ensamblador que no contiene macros, se introduce en
el ensamblador.
Recurdese que un programa es una cadena de caracteres, que incluye letras, dgitos,
espacios, signos de puntuacin y "retornos de carro" (cambio a una lnea nueva). El
desarrollo de una macro no es ni ms ni menos que la sustitucin de ciertas subcadenas de
esa cadena de caracteres por otra cadena diferente. Las macros no son ms que un mtodo
que permite manipular cadenas .de caracteres, sin preocuparse de su significado.

270

Macros con parmetros


El tipo de macros descrito anteriormente se usa para acortar programas en los que se
repite con precisin la misma secuencia de instrucciones varias veces.
Frecuentemente se da el caso de que un programa contiene varias secuencias de
instrucciones que son casi iguales, pero no del todo, como se ilustra en la figura 7-11(a).
Aqu la primera secuencia intercambia P y Q y la segunda R y S.
Los macroensambladores manejan los casos de secuencias casi idnticas permitiendo
que las definiciones de macro acepten parmetros formales y que las llamadas a macro
proporcionen parmetros reales. Cuando se desarrolla una macro, cada parmetro formal
que aparece en el cuerpo se remplaza por el parmetro real correspondiente. Los
parmetros reales se sitan en los campos de operando de la llamada a la macro. La figura
7-11(b) muestra el programa de la figura 7-11(a) usando macros con parmetros. Los
smbolos P1 y P2 son los parmetros formales. Cada ocurrencia de P 1 dentro del cuerpo de
la macro se remplaza por el primer parmetro actual, cuando la macro se extiende. En
forma similar, P2 se remplaza por el segundo parmetro actual.
CAMBIA P, Q
En la llamada macro P es el primer parmetro actual y Q el segundo, de ah que los
programas ejecutables que producen las dos secuencias de la figura 7-11 son idnticos.
MOV EAX, P
MOV
MOV
MOV
.
.
.
MOV
MOV
MOV
MOV

EBX, Q
Q, EAX
P, EBX

EAX, R
EBX, S
S, EAX
R, EBX
(a)

CHANGE MACRO
P1,
P2
MOV EAX, P1
MOV EBX, P2
MOV P2, EAX
MOV P1, EBX
.
.
CHANGE P, Q
.
.
CHANGE P, Q
(b)

Fig. 7-11. Secuencia casi idnticas de instrucciones. (a) Sin macro. (b) Con una macro

Implementacin de macros en un ensamblador


Para que un ensamblador pueda soportar macros debe ser capaz de realizar dos
funciones: guardar las definiciones y expandir las llamadas. Se examinarn estas funciones
una a una.
El ensamblador debe mantener una tabla de todos los nombres de las macros y, junto
con cada nombre, un apuntador a la definicin, de manera que pueda recuperarla cuando la
necesite. Algunos ensambladores tienen una tabla independiente para los nombres de las
macros y otros tienen una tabla combinada de cdigos de operacin, donde se guardan
todas las instrucciones de mquina, seudo instrucciones y nombres de macros.
Cuando se encuentra una definicin de macro, se aaden a la tabla de macros el
nombre de la macro, el nmero de parmetros formales y un apuntador a otra tabla (la de
definiciones de macros) donde se guarda el cuerpo. Tambin se construye una lista de
parmetros formales para su uso en el procesamiento de la definicin. Luego se lee el
cuerpo y se guarda en la tabla de definiciones. Los parmetros formales que aparecen
dentro del cuerpo se indican por una marca especial. Como ejemplo, se muestra a
continuacin la representacin interna de la definicin de la macro CAMBIA, utilizando el

271

punto y coma como "control de carro" y el ampersand como smbolo del parmetro formal.
MOV EAX,&Pl; MOV EBX,&P2; MOV &P2,EAX; MOV &PI,EBX;
Dentro de la tabla de definiciones de macros, el cuerpo es simplemente una cadena de
caracteres.
Durante la primera pasada del ensamblaje, se buscan los cdigos de operacin y se
expanden las macros. Siempre que el ensamblador encuentra una definicin, la almacena
en la tabla. Cuando encuentra una llamada, cesa temporalmente de leer del dispositivo de
entrada y, en cambio, empieza a leer el cuerpo, que haba guardado previamente. Cada vez
que se topa con un parmetro formal, lo remplaza por el real. El ensamblador reconoce
fcilmente los parmetros formales por la presencia del carcter &.

MONTAJE (LINKING) Y CARGA


La mayor parte de los programas se componen de ms de un procedimiento. Los
compiladores y ensambladores suelen traducir un procedimiento a la vez y guardan en
memoria secundaria el resultado de esta traduccin. Antes de que pueda ejecutarse el
programa, todos los procedimientos traducidos deben recuperarse y ligarse correctamente.
Si no se dispone de memoria virtual, el programa enlazado debe cargarse explcitamente en
memoria. Los programas que realizan estas funciones reciben varios nombres, como
cargador (Ioader), montador o ligador (linker), cargador montado (linking loader) y editor
de enlaces (linkage edtor). La traduccin completa de un programa fuente se efecta en
dos pasos, como se ve en la figura 7-12:
1. Compilacin o ensamblaje de los procedimientos fuente.
2. Encadenamiento (linking) o montaje de los mdulos objeto.

El primer paso lo realiza el compilador 0 el ensamblador y el segundo el montador


(linker). La traduccin de un procedimiento fuente aun mdulo objeto representa un cambio
de nivel, ya que el lenguaje fuente y el objeto tienen diferentes instrucciones y notacin. El
proceso de ensamblado, sin embargo, no representa en realidad un cambio de nivel, ya que
la entrada y el resultado del ensamblador son programas para la misma mquina. La
funcin del ensamblador es recoger los procedimientos traducidos y unirlos de tal manera
que funcionen como una unidad, a la cual se le llama generalmente mdulo ejecutable. La
funcin del cargador es cargar el mdulo de carga absoluto en memoria principal. Estas
funciones se combinan con bastante frecuencia.
Hay una buena razn por la que los compilado res y ensambladores traducen cada
procedimiento fuente en forma independiente. Si un compilador leyera una serie de
procedimientos fuente y produjera directamente un programa en lenguaje mquina de
modo de dejarlo listo para su ejecucin., el cambio de una sentencia en uno de los
procedimientos requerira traducir de nuevo todos los procedimientos fuente.
Si se usa el mtodo de los mdulos objeto separados de la figura 7-12, slo ser

272

necesario retraducir los procedimientos modificados y no habr que tocar los dems,
aunque s ser necesario volver a enlazar (relink) todos los mdulos objeto. El enlace es
generalmente mucho ms rpido que la traduccin; de esta manera este proceso de dos
pasos puede ahorrar una gran cantidad de tiempo durante el desarrollo de un programa
largo.

273

Tareas realizadas por el programa ensamblador


Al comienzo de la primera pasada del proceso de ensamblaje, el contador de
posiciones de instruccin es puesto a cero. Este paso es equivalente a suponer que el
mdulo objeto ser situado en la direccin (virtual cero durante la ejecucin. La figura 713 muestra cuatro mdulos objeto. En este ejemplo, cada modulo empieza con una
instruccin de salto a una instruccin de movimiento de datos dentro de l.

Para ejecutar el programa, el cargador (Ioader)sita los mdulos objeto en memoria


principal, como se ve en la figura 7-14(a). Por lo general, una pequea porcin de la
memoria que comienza en la direccin cero se usa en vectores de interrupcin, para
comunicarse con el sistema operativo y otros propsitos, por lo que los programas deben
empezar ms arriba. En esta figura hemos elegido (arbitrariamente) empezar los programas
en la direccin 100.
El programa de la figura 7-14(a), aunque cargado en la memoria principal, no est
listo para ser ejecutado. Consideremos lo que ocurrira si la ejecucin comenzase con la
instruccin que est al principio del mdulo A. El programa no saltara a la instruccin
MUEVE (MOVE), como sera menester, ya que esa instruccin est ahora en la posicin 300.
En la prctica, todas las referencias a memoria fallaran por la misma razn.

274

Este problema, llamado de reubicacin, tiene lugar porque cada mdulo objeto de la
figura 7-13 representa un espacio de direccionamiento distinto. En una mquina con
espacio de direccionamiento segmentado, como el del MULTICS, cada mdulo objeto puede
tener el espacio de direccionamiento situado en su propio segmento. En una mquina con
una memoria lineal, unidimensional, los mdulos objeto tienen que mezclarse en un nico
espacio de direccionamiento. La naturaleza bidimensional de la memoria virtual del MUL
TICS elimina la necesidad de mezclar los mdulos objeto y simplifica en gran medida la
tarea del ensamblador. Los distintos espacios de direccionamiento de los mdulos objeto
deben tambin mezclarse en una mquina que tuviese una memoria paginada
unidimensional.
Adems, las instrucciones de llamada a procedimientos de la figura 7-14(a) tampoco
funcionarn. En la direccin .400, el programador ha intentado llamar al mdulo objeto B,
pero ya que cada procedimiento se traduce por separado, el ensamblador no puede saber
cul es la direccin que ha de poner en la instruccin de llamada. La direccin del mdulo
objeto B no se conoce hasta el momento del enlace. Este problema recibe el nombre de
referencias externas. Estos dos problemas pueden ser resueltos por el programa
275

ensamblador .
El programa ensamblador mezcla los distintos espacios de direccionamiento de los
mdulos objeto para conseguir un espacio de direccionamiento nico y lineal en los
siguientes pasos:
1.
Construye una tabla de todos los mdulos objeto y sus longitudes.
2.
Basado en esta tabla, asigna una direccin de carga a cada mdulo objeto.
3.
Busca todas las instrucciones que contengan una direccin de memoria y, a
cada una de ellas, le suma una constante de reubicacin igual a la direccin de
comienzo del mdulo en el que estn contenidas.
4.
Busca todas las instrucciones que hacen referencia a otros procedimientos e
inserta en ellas la direccin de los mismos.
La tabla de mdulos objeto construida en el paso 1 se muestra aqu para los mdulos
de la figura 7-14:
Mdulo
A
B
C
D

Longitud
400
600
500
300

Direccin de comienzo
100
500
1100
1600

La figura 7-14(b) muestra el aspecto del espacio de direcciones de la figura 714(a) de que el ensamblador haya realizado los pasos anteriores.

Estructura de un mdulo objeto


Los mdulos objeto contienen seis partes, como se ve en la figura 7-15. La primera
contiene el nombre del mdulo, cierta informacin necesaria para el ensamble, como las
longitudes de las distintas partes del mdulo objeto y, algunas veces, la fecha de
ensamblaje.
Identificacin
Tabla de puntos de entrada
Tabla de referencias externas

Instrucciones de mquina y constantes

Lista de reubicacin
Fin de mdulo
Fig. 7-15. Estructura interna de un mdulo objeto
producida por un traductor.
La segunda parte del mdulo objeto es una lista de los smbolos definidos en el
mdulo a los que otros mdulos pueden hacer referencia, junto con sus valores. Por
ejemplo, si el mdulo consta de un procedimiento llamado GRANLIO, entonces la tabla de

276

puntos de entrada contendr la cadena de caracteres "GRANLIO" seguida de la direccin a


la cual corresponde. El programador en lenguaje ensamblador indicar qu smbolos han de
ser declarados como puntos de entrada o smbolos externos usando una seudo instruccin.
La tercera parte del mdulo objeto consta de una lista de los smbolos que usa, pero
que estn definidos en otros mdulos, junto con otra que dice qu instrucciones usa cada
uno de esos smbolos. Con esta ltima lista el ensamblador inserta las direcciones correctas
en las instrucciones que usan smbolos externos. Un procedimiento puede llamar a otros
procedimientos traducidos independientemente declarando como externos los nombres de
dichos procedimientos. El programador en lenguaje ensamblador indica los smbolos que
han de ser declarados como externos mediante una seudo instruccin. En algunas
computadoras, las tablas de puntos de entrada y de referencias externas se combinan en
una sola.
La cuarta parte del mdulo objeto contiene el cdigo ensamblado y las constantes.
Esta es la nica parte del mdulo que se cargar en memoria para su ejecucin. Las otras
cinco partes las usar el montador (linker) y sern descartadas antes de que comience la
ejecucin.
La quinta parte del mdulo objeto es la lista de reubicacin. Como se ve en la figura
7-14, a las instrucciones que contengan direcciones se les debe sumar una constante de
reubicacin. Como el montador (linker) no tiene manera de saber por inspeccin cules
palabras de la parte cuatro son datos y cules son instrucciones, esta tabla proporciona la
informacin sobre cules son las direcciones que hay que reubicar .La informacin puede
tomar la forma de una tabla de bit, con un bit por cada direccin potencialmente reubicable,
o una lista explcita de direcciones que han de re ubicarse.
La sexta parte es una indicacin de fin de mdulo ya veces contiene una informacin
redundante especial para descubrir errores mientras se lee el mdulo y la direccin en la
que ha de comenzar la ejecucin.
La mayor parte de los montadores (linkers) requieren dos pasadas. En la primera, el
montador (linker) lee todos los mdulos objeto y construye una tabla de nombres de
mdulos y longitudes. La otra, de smbolos globales, contiene todos los puntos de entrada y
las referencias externas. En la segunda pasada se leen los mdulos objeto, se re ubican y se
enlazan uno a uno.

Tiempo de ligadura y reubicacin dinmica


En un sistema de tiempo compartido, un programa puede cargarse en memoria
principal, ejecutarse durante un rato, volver a escribirse en memoria secundaria y luego
leerse de nuevo en la memoria principal para seguir por donde iba. En un sistema grande
con muchos programas, es muy difcil asegurar que un programa se lea de nuevo en las
mismas posiciones de memoria todas las veces.
La figura 7-16 muestra lo que ocurrir si un programa ya re ubicado, como el de la
figura 7-14(b), se cargara en la direccin 400 en vez de hacerlo en la 100, donde el
ensamblador lo puso originalmente. Todas las direcciones de memoria son incorrectas.
Adems, la informacin de reubicacin ha sido descartada hace tiempo. Pero, aun cuando la
informacin de reubicacin estuviera disponible, seria demasiado grande el costo de tener
que re ubicar todas las direcciones cada vez que el programa se vuelva a cargar.

277

El problema de mover programas que ya han sido ensamblados y reubicados est


ntimamente relacionado con el momento en que se hace la ligadura final entre los nombres
simblicos y las direcciones absolutas de la memoria fsica. Cuando se escribe un programa,
contiene nombres simblicos para las direcciones de memoria, como en SALTA LUGAR. El
momento en que se determina la direccin real de memoria correspondiente a LUGAR se
llama tiempo de ligadura. Hayal menos seis posibilidades para el tiempo de ligadura:
1. Cuando el programa se escribe.
2. Cuando el programa se traduce.
3. Cuando se liga el programa, pero antes de cargarse.
4. Cuando el programa se carga.
5. Cuando se carga un registro de base usado para direccionamiento.
6. Cuando se ejecuta la instruccin que contiene la direccin.

278

Si una instruccin que contenga una direccin de memoria se moviera despus de la


ligadura, sera incorrecta (suponiendo que el objeto al que haga referencia se haya movido
tambin). Si el traductor produjera un mdulo de carga absoluto como salida, la ligadura se
habra producido en el momento de la traduccin y el programa debera ejecutarse en las
direcciones en las que el traductor esperaba que lo hiciera. El mtodo de ensamblado que
se ha descrito en la seccin anterior liga los nombres simblicos con las direcciones
absolutas, por lo que el programa no funcionar si se mueve a direcciones diferentes
despus del ensamblado, como se muestra en la figura 7-16.
Hay dos cuestiones relacionadas con esto. La primera se refiere al momento en que
los nombres simblicos se ligan con direcciones virtuales; la segunda, al momento en que
se ligan las direcciones virtuales con direcciones fsicas. Slo cuando ambas operaciones se
hayan realizado, el proceso de ligadura estar completo. Cuando el ensamblador mezcla los
espacios de direccionamiento de los mdulos objeto en un espacio nico y lineal de
direcciones, est de hecho creando un espacio de direccionamiento virtual. La reubicacin y
el montaje sirven para ligar los nombres simblicos con direcciones virtuales especficas.
Esto es cierto tanto si se usa la memoria virtual como si no se usa.
Supongamos por el momento que el espacio de direccionamiento de la figura 714(b) estuviese paginado. Est claro que las direcciones virtuales correspondientes a los
nombres simblicos A, B, C y D ya han sido determinadas, aunque sus direcciones fsicas de
memoria principal dependan del contenido de la tabla de pginas en el momento en que se
usen. Un mdulo de carga absoluto es en realidad una ligadura de nombres simblicos con
direcciones virtuales. Cualquier mecanismo que permita el cambio sin dificultad en el mapeo
entre direcciones virtuales y fsicas de la memoria principal, facilitar el movimiento de
programas por la memoria principal, aunque ya hayan sido ligados a un espacio virtual de
direccionamiento. Uno de estos mecanismos es la paginacin. Despus de que un programa
se haya movido en la memoria principal, solamente habr que cambiar la tabla de pginas,
no el programa en si.
Un segundo mecanismo es el uso de un registro de reubicacin en tiempo de
ejecucin, tal como el registro CS en las CPU de Intel. En las mquinas que usan este
mtodo de reubicacin, el registro siempre apunta ala direccin de la memoria fsica de
inicio del programa actual. A todas las direcciones de memoria se les suma el registro de
reubicacin, por medio de hardware, antes de enviarlas a memoria. El proceso de
reubicacin es por completo transparente al mecanismo es menos general que el de
paginacin, ya que implica mover al programa completo como a una unidad (a menos que
haya registros separados de cdigo y de datos, en cuyo caso se le debe mover como a dos
unidades). Es posible tener un tercer mecanismo en mquinas como las CPU 680xO, que
pueden referenciar memoria en forma relativa al contador de programa. Siempre que se
mueve un programa en la memoria, slo se necesita actualizar el contador de programa.
Los programas cuyas referencias a memoria son en su totalidad relativas al contador de
programa o absolutas (v .g. , a direcciones absolutas en registros de dispositivos de E/S);
se dice que son independiente de la posicin. Un procedimiento de este tipo se puede
colocar en cualquier parte del espacio de direcciones virtual, sin necesidad de reubicacin.

Enlace dinmico
En el mtodo de montaje analizado en la Seccin 7.4.1, un programa deba .enlazarse
antes de su ejecucin con todos los procedimientos potencialmente
necesarios. En una computadora con memoria virtual, no se aprovechan a fon- do sus
posibilidades si ha de realizar el proceso de enlace previamente a la ejecucin. Muchos
programas tienen procedimientos a los que no llaman, salvo en circunstancias
excepcionales. Por ejemplo, los compiladores tienen procedimientos para traducir
sentencias raramente usadas y para tratar condiciones de error que acontecen pocas veces.
Un mtodo ms flexible para el enlace de procedimientos compilados por separado
consiste en enlazar cada procedimiento en el momento en que se le llama por primera vez.
A este proceso se le conoce como enlace dinmico. El cual fue utilizado en primera instancia
en el MULTICS y despus en el OS/2. Como las dos implantaciones son en cierto modo

279

diferentes, se expondrn ambas.


En el MUL TICS existe un segmento asociado a cada programa denominado segmento
de enlace, el cual contiene un bloque de informacin para cada procedimiento que pudiera
ser llamado. Dicho. bloque se inicia con una palabra reservada para la direccin virtual del
procedimiento, seguida del nombre de ste en la forma de una cadena de caracteres.
Cuando se aplica el enlace dinmico, las llamadas a procedimiento del programa
fuente se traducen a instrucciones que direccionan en forma indirecta la primera palabra del
bloque de enlace correspondiente, como se muestra en la figura 7-17(a). El traductor
llena esta palabra con una direccin invlida o con un patrn de bits que fuerza un desvi.

Cuando se llame a un procedimiento situado en un segmento diferente, el intento de


direccionar con la palabra invlida causar un desvo al enlace dinmico. Este buscar en el
directorio de archivos del usuario un procedimiento compilado que tenga el mismo nombre
que el situado detrs de la palabra con la direccin invlida. Luego le asignar una direccin
virtual, normalmente en un segmento para l solo, y cambiar la direccin invlida por la
direccin virtual recin .asignada, como se indica en la figura 7-17(b). En seguida se

280

vuelve a ejecutar la instruccin causante de la falta de enlace, permitiendo que el programa


contine desde donde estaba antes del desvi.
Todas las referencias al procedimiento que tengan lugar despus se ejecutarn sin
causar falta de enlace, ya que la palabra indirecta contiene ahora una direccin virtual
vlida. En consecuencia, slo se har uso del enlace dinmico la primera vez que se llame a
cada uno de los procedimientos.
En el OS/2, el esquema de enlace dinmicos ms general que el de MULTICS. Un
programador de OS/2 no necesita saber los nombres de todos los procedimientos que su
programa, en ltima instancia, llamar. Considrese el ejemplo siguiente. En un sistema
distribuido de operaciones bancarias, una mquina central recibe solicitudes de terminales
distantes para llevar a cabo ciertas transacciones. Al momento de disear el sistema, se
esperaba que al evolucionar ste, se incorporaran nuevos tipos de transacciones.
Para permitir la evolucin del sistema, se ha decidido con antelacin que cada
transaccin tenga un nombre y que cada una se lleve a cabo por medio de un procedimiento
del mismo nombre. El cdigo ejecutable para este procedimiento se almacenar como un
archivo con el mismo nombre, en un directorio especial.
Cuando una terminal remota enva un mensaje a la computadora central, ste incluye
el nombre de la transaccin. En seguida, el programa de transaccin construye el nombre
de archivo que contiene el cdigo relevante y realiza una llamada de sistema solicitando al
sistema operativo que localice el archivo y lo traiga a la memoria. Despus, hace una
segunda llamada al sistema operativo para que busque y le proporcione la direccin de
inicio del procedimiento que necesita (el archivo puede contener varios procedimientos).
Teniendo ya esta direccin (en realidad un selector de segmento y un desplazamiento), el
programa principal llama al procedimiento. Las llamadas posteriores al mismo
procedimiento se realizan en la forma normal, sin necesidad de llamadas de sistema.
Debe quedar claro que este esquema hace posible incorporar nuevos procedimientos a
un programa ya probado, compilando simplemente el cdigo objeto relevante y colocndolo
en alguna parte de un disco. Ni siquiera es necesario que el programa sepa por adelantado
en donde se encuentra el procedimiento, ya que esta informacin puede estar contenida en
el mensaje que se le enva. Tampoco se requiere que el programa detenga su ejecucin y se
recompile.

281

CONCLUSIN

282

BOLILLA VI (Parte 1):


PERIFRICOS

283

INDICE
INDICE GENERAL............................................................................................1
BOLILLA I: LA COMPUTADORA..............................................................................................4
INDICE.......................................................................................................................................5
INTRODUCCIN...................................................................................................................12
LA COMPUTADORA............................................................................................................13
CONCEPTO:.........................................................................................................................13
FUNCIONES Y ACCIONES:...............................................................................................13
Para qu sirve una computadora?:.........................................................................................13
Computadora y Circuitos:......................................................................................................14
HARDWARE Y SOFTWARE: ............................................................................................14
Software: ...........................................................................................................................14
Al software se lo clasifica en dos grupos: .....................................................................14
Hardware:...........................................................................................................................15
Arquitectura - Componentes Bsicos:...................................................................................15
Unidad de Control:.............................................................................................................15
Unidad aritmtico-lgica:..................................................................................................15
Memoria:(Memoria Central)..............................................................................................15
Perifricos: ........................................................................................................................15
Ncleo de la computadora: ...............................................................................................15
BUSES DE COMPUTADORAS:.........................................................................................16
Buses sncronos y asncronos: ..............................................................................................18
Arbitraje del bus:...............................................................................................................19
Ejemplo de encadenamiento margarita:.............................................................................19
Solicitud del Bus............................................................................................................19
Dispositivos de E/S............................................................................................................19
Manejo de interrupciones:.................................................................................................20
Canales de e/s.........................................................................................................................20
TECNOLOGA DE CANALES:.......................................................................................21
TIPOS DE CANALES:.....................................................................................................21
Multiplexor: ..................................................................................................................21
Selector..........................................................................................................................22
Multipexor por bloques: ................................................................................................22
Spoll: .........................................................................................................................22
SISTEMA OPERATIVO.......................................................................................................23
Introduccin: ....................................................................................................................23
QU ES UN SISTEMA OPERATIVO?.........................................................................24
CONCLUSIN........................................................................................................................25
BOLILLA II (Parte 1): EL NIVEL DE LOGICA DIGITAL.....................................................26
INDICE.....................................................................................................................................27
INTRODUCCIN...................................................................................................................34
EL NIVEL DE LOGICA DIGITAL......................................................................................35
COMPUERTAS Y ALGEBRA BOOLEANA......................................................................35
Compuertas........................................................................................................................35
284

Algebra booleana...............................................................................................................37
Implementacin de funciones booleanas ..........................................................................38
Equivalencia entre circuitos...............................................................................................40
CIRCUITOS DIGITALES BSICOS..................................................................................44
Circuitos integrados ..........................................................................................................44
Circuitos combinacionales ................................................................................................47
Multiplexores ................................................................................................................47
Decodificadores ............................................................................................................49
Comparadores ...............................................................................................................51
Arreglos (matrices) lgicos programables ....................................................................51
Circuitos aritmticos..........................................................................................................53
Registros de corrimiento................................................................................................53
Sumadores .....................................................................................................................54
Unidades aritmticas y lgicas......................................................................................55
Relojes ..............................................................................................................................55
MEMORIA............................................................................................................................57
Biestables...........................................................................................................................57
Bieslables SR sincronizados..........................................................................................59
Biestables D sincronizados............................................................................................59
Flip-flops y registros..........................................................................................................59
Registros........................................................................................................................60
Organizacin de las memorias...........................................................................................61
Propiedades de las memorias.............................................................................................64
MICROPROCESADORES y BUSES...................................................................................66
Microprocesadores ............................................................................................................66
Buses de computadora.......................................................................................................68
Buses sncronos .................................................................................................................70
BUSES ASINCRONOS....................................................................................................73
Arbitraje del bus ................................................................................................................74
Manejo de interrupciones ..................................................................................................77
CONCLUSIN........................................................................................................................79
BOLILLA II (Parte 2): EL NIVEL DE MICROPROGRAMACIN.......................................80
INDICE.....................................................................................................................................81
INTRODUCCIN...................................................................................................................88
EL NIVEL DE MICROPROGRAMACIN .......................................................................89
REPASO SOBRE EL NIVEL DE LGICA DIGITAL .......................................................90
Registros ..........................................................................................................................90
Buses .................................................................................................................................90
Multiplexores y decodificadores .......................................................................................92
Unidades aritmticas y lgicas y registros de corrimiento ...............................................92
Relojes ..............................................................................................................................93
Memoria principal .............................................................................................................94
Encapsulado de los componentes .....................................................................................95
UNA MICROARQUITECTURA TIPICA ...........................................................................96
La ruta de datos .................................................................................................................96
Microinstrucciones ............................................................................................................98
Cronologa de las microinstrucciones .............................................................................100
Secuenciamiento de las microinstrucciones ...................................................................102

285

UNA MACROARQUITECTURA TIPICA .......................................................................103


Pilas .................................................................................................................................103
El juego de macroinstrucciones ......................................................................................107
MICROPROGRAMACIN: UN EJEMPLO ....................................................................110
El lenguaje micro ensamblador .......................................................................................110
El ejemplo de microprograma .........................................................................................111
Observaciones sobre el microprograma ..........................................................................113
Perspectivas ....................................................................................................................114
EL DISEO DEL NIVEL DE MICROPROGRAMACIN ............................................115
Microprogramacin horizontal frente a microprogramacin vertical..............................115
Nanoprogramacin ..........................................................................................................122
Mejora del rendimiento ...................................................................................................123
Memoria cach ...............................................................................................................129
CONCLUSIN......................................................................................................................134
................................................................................................................................................135
BOLILLA II (Parte 3): EL NIVEL DE MAQUINA CONVENCIONAL................................135
INDICE...................................................................................................................................136
INTRODUCCIN.................................................................................................................143
EL NIVEL DE MQUINA CONVENCIONAL.................................................................144
EJEMPLOS DEL NIVEL DE MAQUINA CONVENCIONAL........................................144
FORMATOS DE INSTRUCCIN.....................................................................................145
Criterios de diseo de formatos de instruccin................................................................146
Cdigos de operacin con extensin...............................................................................147
Ejemplos de formatos de instrucciones...........................................................................149
La PDP-11...................................................................................................................149
Direccionamiento.............................................................................................................149
Direccionamiento inmediato........................................................................................150
Direccionamiento directo.............................................................................................150
Direccionamiento de registros.....................................................................................151
Direccionamiento indirecto..........................................................................................151
Indexacin....................................................................................................................152
Direccionamiento por medio de pilas..........................................................................153
Notacin polaca inversa...........................................................................................155
Evaluacin de frmulas en la notacin polaca inversa............................................157
Algoritmo.............................................................................................................157
Algoritmo.............................................................................................................157
Ejemplos de direccionamiento.....................................................................................160
Direccionamiento en la PDP-11..............................................................................160
Tipos de Instrucciones ........................................................................................................160
Instrucciones de movimiento de datos ............................................................................161
Operaciones binarias .......................................................................................................161
Operaciones unarias ........................................................................................................162
Comparaciones y Saltos Condicionales...........................................................................164
Instrucciones de llamada a procedimiento ......................................................................166
Control de iteraciones .....................................................................................................167
Entrada / salida ................................................................................................................168
Flujo De Control .................................................................................................................173
Flujo de control secuencial y saltos ................................................................................173
286

Procedimientos ................................................................................................................174
Corrutinas ........................................................................................................................179
Desvios ............................................................................................................................182
Interrupciones .................................................................................................................183
ACCIONES DE HARDWARE ..................................................................................183
ACCIONES DE SOFTWARE ...................................................................................184
CONCLUSIN......................................................................................................................187
BOLILLA III: ARQUITECTURA DEL PROCESADOR.......................................................188
INDICE...................................................................................................................................189
INTRODUCCIN.................................................................................................................196
ARQUITECTURA DEL PROCESADOR..........................................................................197
ESTRUCTURA GENERAL...............................................................................................197
DESCRIPCIN DE LOS COMPONENTES DE UN PROCESADOR ............................197
Microprocesadores...............................................................................................................200
EJECUCIN DE LAS INSTRUCCIONES .......................................................................201
ORGANIZACIN DE LA CPU ........................................................................................202
LA UNIDAD ARITMTICA Y LGICA .........................................................................204
LA UNIDAD DE CONTROL.............................................................................................206
FASE DE BSQUEDA DE LA INSTRUCCIN .............................................................207
FASE DE BSQUEDA O ALMACENAMIENTO DEL OPERANDO ...........................207
Caso de bsqueda del operando, seguido de procesamiento: .........................................207
Caso de almacenamiento del operando: ..........................................................................208
FASE DE PREPARACIN DE LA SIGUIENTE INSTRUCCIN .................................209
INSTRUCCIN DE RUPTURA DE SECUENCIA ..........................................................209
EL CANAL..........................................................................................................................210
LAS UNIDADES PERIFRICAS .....................................................................................211
INTERRUPCIONES ..........................................................................................................211
CONCLUSIN......................................................................................................................214
BOLILLA IV: MEMORIA........................................................................................................215
INDICE...................................................................................................................................216
INTRODUCCIN.................................................................................................................223
MEMoRia ..............................................................................................................................224
DIRECCIONES DE MEMORIA .......................................................................................225
ORDENAMIENTO DE BYTES ........................................................................................226
CDIGOS CORRECTORES DE ERRORES ....................................................................227
CLASIFICACIN Y ORGANIZACIN DE LAS MEMORIAS .....................................227
PARMETROS y CARACTERSTICAS MS IMPORTANTES DE UNA MEMORIA 228
Capacidad.........................................................................................................................228
Formas de acceder a las posiciones de memoria ............................................................229
Memorias de acceso aleatorio (RAM = Ramdom Acess Memory) ............................229
Estructura de una RAM semiconductora ................................................................231
Pastillas de memoria en paralelo ........................................................................233
Memorias pasivas....................................................................................................235
Memorias de acceso serie ...........................................................................................236
Memorias asociativas ..................................................................................................238
MODOS DE DIRECCIONAMIENTO ..........................................................................239
287

Modo de direccionamiento directo .............................................................................239


Modo de direccionamiento indirecto ..........................................................................240
Modo de direccionamiento relativo ............................................................................240
Modo de direccionamiento indexado ..........................................................................242
Modo de direccionamiento por registro indirecto .......................................................243
Otros modos de direccionamiento ..............................................................................244
CONCLUSIN......................................................................................................................245
................................................................................................................................................246
BOLILLA V: EL NIVEL DEL LENGUAJE ENSAMBLADOR.............................................246
INDICE...................................................................................................................................247
INTRODUCCIN.................................................................................................................254
EL NIVEL DEL LENGUAJE ENSAMBLADOR..............................................................255
INTRODUCCIN AL LENGUAJE ENSAMBLADOR ...................................................256
Qu es un lenguaje ensamblador? .................................................................................256
Formato de una sentencia en lenguaje ensamblador .......................................................257
Comparacin entre el. lenguaje ensamblador y los lenguajes de alto nivel ...................258
Afinacin de programas ..................................................................................................259
EL PROCESO DE ENSAMBLAJE ...................................................................................261
Ensambladores de dos pasadas .......................................................................................261
La primera pasada ...........................................................................................................262
La segunda pasada ..........................................................................................................266
La tabla de smbolos .......................................................................................................267
MACrOS .............................................................................................................................269
Definicin, llamada y expansin de una macro ..............................................................269
Macros con parmetros ...................................................................................................271
Implementacin de macros en un ensamblador ..............................................................271
MONTAJE (LINKING) y CARGA ...................................................................................272
Tareas realizadas por el programa ensamblador .............................................................274
Estructura de un mdulo objeto ......................................................................................276
Tiempo de ligadura y reubicacin dinmica ...................................................................277
Enlace dinmico ..............................................................................................................279
CONCLUSIN......................................................................................................................282
BOLILLA VI (Parte 1): PERIFRICOS.................................................................................283
INDICE...................................................................................................................................284
INTRODUCCIN.................................................................................................................291
PERIFRICOS......................................................................................................................292
RESEA HISTRICA.......................................................................................................292
INTRODUCCIN ...............................................................................................................292
PERlFERICOS DE ENTRADA: ........................................................................................293
TECLADO: .....................................................................................................................293
Cuidados y advertencias..............................................................................................294
MOUSE (RATON) .........................................................................................................295
Tipos de ratones...........................................................................................................296
Ratones Inalmbricos. .............................................................................................296
Ratones Estacionarios..............................................................................................296

288

PANTALLAS TCTILES: ............................................................................................296


BOLAS GIRATORIAS: .................................................................................................296
ESCANER ......................................................................................................................296
Profundidad de color....................................................................................................296
Tipos de escner:.........................................................................................................297
Escner de mano: ....................................................................................................297
Ventaja: ...............................................................................................................297
Desventajas: ........................................................................................................297
Escner de Sobremesa: ...........................................................................................297
Ventajas: .............................................................................................................297
Desventajas: ........................................................................................................297
Escner de Rodillo:..................................................................................................297
Calibracin...................................................................................................................297
LECTORES DE CODIGO DE BARRA.....................................................................297
TABLETA DIGITALIZADORA....................................................................................298
LECTORES DE TARJETAS MAGNETICAS...............................................................298
LAPIZ OPTICO: ............................................................................................................298
PERIFERICOS DE ALMACENAMIENTO: .................................................................299
Discos...........................................................................................................................299
Discos flexibles............................................................................................................299
Fiabilidad del soporte. .............................................................................................300
Facilidad de manejo y almacenamiento. .................................................................300
1. Disco flexible de 5 1/4 pulgadas .....................................................................300
2. Disco flexible de 3 1/2pulgadas ......................................................................300
Disco duro....................................................................................................................300
Discos opticos: ............................................................................................................301
Cintas magneticas: ......................................................................................................302
DVD:............................................................................................................................302
Prestaciones del DVD: ............................................................................................303
El disco por dentro: .................................................................................................303
La compresin MPEG-2: ........................................................................................303
El futuro del DVD: .................................................................................................303
PERIFERICOS DE SALIDA: ............................................................................................304
PANTALLAS DE SISTEMAINFORMATICO (Monitor): ...........................................304
Impresoras........................................................................................................................305
Impresoras con cinta entintada: ..................................................................................305
Impresora de Bola: ..................................................................................................305
Impresoras de agujas: ..............................................................................................306
Impresoras sin cinta entintadas: ..................................................................................306
Impresoras trmicas: ...............................................................................................306
Impresoras de inyeccin de tinta: ...........................................................................306
Impresoras lser: .....................................................................................................306
Impresoras Lser de color: ......................................................................................306
PERIFERICOS DE COMUNICACION.. ..........................................................................307
MODEM..........................................................................................................................307
Aspectos tcnicos.........................................................................................................307
Como usar la Tecnologa 56K ................................................................................307
CONCLUSIN....................................................................................................................308
CONCLUSIN......................................................................................................................309

289

BOLILLA VI (PARTE 2): TCNICAS Y DISPOSITIVOS DE ENTRADA SALIDA...........310


INDICE...................................................................................................................................311
INTRODUCCIN.................................................................................................................318
TECNICAS Y DISPOSITIVOS DE ENTRADA / SALIDA (Input / Ouput)..................319
Dispositivos de fichas y de banda perforada.......................................................................319
Dispositivos de soporte magntico......................................................................................323
Impresoras............................................................................................................................323
Plotter...................................................................................................................................330
La pantalla............................................................................................................................331
Terminales...........................................................................................................................332
Procesos de comunicacin para la transmisin de datos a distancia...................................334
Otros perifricos..................................................................................................................334
Tcnicas de entrada/salida (input/output)............................................................................335
Polling (interrogatorio de trfico) ...................................................................................336
Interrupciones (interrupts) ..............................................................................................338
Transferencia DMA ........................................................................................................339
GLOSARIO.........................................................................................................................340
CONCLUSIN......................................................................................................................342
CONCLUSIN FINAL..............................................................................................................343
BIBLIOGRAFA .......................................................................................................................344

290

INTRODUCCIN

291

APUNTES DE CATEDRA
CARRERA:
Ctedra:
Profesor:
AO:

LICENCIATURA EN ANALISIS DE SISTEMAS


INGENIERIA EN SISTEMAS
Procesamiento De Datos I
Lic. Marcelo Martinez
2003

PERIFRICOS
RESEA HISTRICA
La naturaleza ha dotado al ser humano de diversas habilidades entre las que merecen
destacarse la capacidad de abstraccin y la posibilidad de realizar clculos matemticos.
Estas habilidades no hubieran progresado en la medida que lo han hecho si el hombre no se
hubiera visto obligado a realizar clculos complejos mentales o con ayuda de sus dedos.
Debido a esto se vio obligado a ayudase de diversas maneras.
En la historia de la humanidad el baco fue la primera herramienta de clculos
diseada y construida por el hombre para ayudarse en la realizacin de operaciones
matemticas.
Existen diversas variantes de instrumento segn las diferentes zonas donde se ha
utilizado:
1. En Oriente se fabricaron los primeros bacos que todava se utilizan en algunos
pases.
2. En Europa los griegos, posteriormente debido a intercambios comerciales con
otros pueblos.
3. En Espaa el baco se utilizo hasta prcticamente el siglo XX pero con el
nombre de contador .
4. En Sudamrica tambin existieron herramientas que pudieron tener una
utilizacin similar, como el quipu de loS Incas.

INTRODUCCIN
Los perifricos son una serie de dispositivos que conectan a la unidad central del
sistema de la computadora con el exterior permitiendo:
1. Introducir en la computadora la informacin necesaria, en forma de ordenes de
comando y datos para realizar los procesos necesarios.
2. La comunicacin interactiva de la computadora con los usuarios durante el proceso.
3. El envo al exterior de la unidad central del sistema de la computadora de los
resultados obtenidos tras los procesos de informacin realizados.
Los perifricos son traductores que se encargan de comunicar una computadora que
utiliza un alfabeto de solo dos caracteres con los seres humanos que manejan un alfabeto
con ms caracteres.
La eficacia de un sistema informtico depende de la velocidad de trabajo de sus
perifricos. Los perifricos se comunican con la unidad central de proceso a travs de los
canales de transferencia de informacin, los buses.
La conexin entre los perifricos y la unidad central del sistema de la computadora se
realiza a travs de adaptadores o interfaces.
La comunicacin a travs de protocolos de comunicaciones que compatibilizan la
transmisin de datos entre ambos. Existen bsicamente dos mtodos para la transmisin de
datos :
4. Serie: las diversas seales se transmiten bit a bit, una tras otra, sobre el mismo
cable fsico.
5. Paralelo: todas las seales que integran una palabra o dato unitario se transfiere
simultneamente a travs de cables separados paralelos.

292

La conexin de los perifricos con la computadora se puede realizar de dos formas


diferentes:

Lnea compartida: Todos los perifricos se conectan a la unidad


central del sistema a travs de una sola lnea de comunicaciones.

Radial o en estrella: cada perifrico se conecta con la computadora a


travs de su propia lnea de comunicaciones.
Existen varios tipos de perifricos:

Perifricos de entrada.

Perifricos de almacenamiento de la informacin.

Perifricos de salida.

Perifricos de comunicacin.

PERLFERICOS DE ENTRADA:
Los perifricos de entrada son subsistemas que permiten la introduccin de
informacin y ordenes en el interior de la p .C .
Los perifricos de entrada de informacin son los ms lentos del sistema informtico
por una razn evidente: son manejados por el ser humano. Entre los dispositivos de
entrada se cuentan:

TECLADO:
El mtodo ms comn de interaccin con una computadora es el empleo del teclado,
es la unidad perifrica de entrada de datos al sistema informtico ms universal. El teclado
transforma la pulsacin de cada tecla en una seal electrnica particular que es reconocida
por la C.P.U.
Los teclados proporcionan varias respuestas ( desde duras hasta blandas) y tiene
varias disposiciones, dependiendo de su computadora y el modelo del teclado.
La mayora proporciona el teclado "QWERTY" (debido al orden que siguen las teclas
alfabticas de la primera fila), el ms popular , grandes teclas etiquetadas con letras
romana y punto en relieve en las teclas F, J y 5 para que los programas de procesamiento
numrico puedan utilizar estas teclas y las cercanas para emular una calculadora ( en la
Macintosh, el punto en relieve est en las teclas D , Ky5).
En las PCs, los teclados se conectan a los circuitos de la tarjeta madre. La mayora de
los teclados en las PCs son del tipo 101 (que brinda 101 tecla), aunque estn disponibles
varios estilos con ms o menos teclas especiales, diodos emisor de luz (LED) y otras
caractersticas, como cubiertas de plstico para aplicaciones industriales o de servicio de
comida.
Los teclados "Macintosh" se conectan al bus de escritorio apple (ADB), el cul maneja
todas las formas de entrada de un usuario, desde la tabla digitalizadoras hasta los ratones.
Estn disponibles tres teclados Macintosh:

El apple estndar
El apple extendido.
El apple ajustable (puede separarse en dos secciones ajustables
a 30 grados)
El teclado se divide fsicamente en tres bloque de teclas y un grupo de teclas
especiales:
1 Teclas alfanumricas
Este grupo de teclas es similar al teclado de una maquilla de escribir estndar: las
teclas del alfabeto, signos de acentuacin y puntuacin los diez decimales y smbolos

293

especiales.
2 Teclas de funcin
Realiza un conjunto de operaciones especiales especificadas por el fabricante de la
computadora o de la aplicacin informtica que est ejecutando en su momento. Las
ventajas de las teclas de funcin es rdenes a travs del teclado.
3 Teclas numricas
Son un bloque de teclas similares al de una calculadora para facilitar el trabajo de
introduccin de datos y la realizacin de operaciones matemticas. El bloque de teclas
numricas tienen dos modos de funcionamiento principales: si la tecla NUM LOCK (bloqueo
numrico) est pulsada en el teclado, en la pantalla del sistema informtico aparecern los
dgitos impresos en cada tecla numrica, mientras no este pulsada, las teclas estarn en
modo de control del cursor , pudindose utilizar estas teclas para navegar por la pantalla de
la computadora.
4 Tecla ENTER o INTRO
Esta tecla se utiliza para indicar a la computadora que ha terminado de introducir
informacin en una lnea
Si se esta trabajando en un programa de aplicacin se realizar la accin que
corresponda, por ejemplo, en un procesador de textos el cursos pasar a la lnea siguiente.
5 Tecla CTRL
Esta tecla se denomina control, y se usa en combinacin con otras teclas.
Generalmente sirve para avisar al sistema operativo de que el usuario esta intentando
realizar una accin especial.
6 "Tecla ALT"
Esta tecla se denomina alternar , tambin es una tecla que provoca acciones
especiales de la computadora o de los programas que estn ejecutndose en ese momento.
Por Ejemplo, pulsando al mismo tiempo la tecla ALT y 164 se leer en el monitor la letra .
7 Tecla ESC"
Se denomina escape. como su nombre indica permite "escapar" de algunos .procesos,
como la ejecucin de un listado en la pantalla de la computadora, o de algunos programas
de aplicacin comercial.
Existen varias tecnologas para la construccin de teclados de computadora, entre los
que se destacan:

Teclados Mecnicos
Teclados Electrnicos
TECLADOS MECNICOS :
Son ms antiguos que los electrnicos y, en algunos casos, menos fiables y caros de
construir. Los teclados mecnicos presentaron un problema debido a que, por su tecnologa
de construccin la parte mecnica de las teclas no efectuaba solo un contacto al pulsarla,
sino que exista un efecto rebote sobre la superficie del contacto elctrico que enviaba varas
veces la seal al controlador del teclado.
TECLADOS ELECTRNICOS:
Solucionaron el problema del efecto rebote creando un retardo en el controlador para
eliminar las seales producidas por el mismo.

Cuidados y advertencias
Si bien el teclado es considerado un dispositivo no frgil, esta expuesto aciertos
riesgos que pueden alterar su normal funcionamiento.
Dentro del teclado existe una placa con un contacto electrnico para cada tecla. Al
presionar una de ellas, se acciona un contacto y la informacin se transmite a la
computadora a travs de cables. Para que este mecanismo se desencadene normalmente
hay que tomar ciertas precauciones :
No es recomendable comer, ni fumar mientras se trabaja en la PC. El teclado tiene la
particularidad de "atraer" las migas y cenizas, estas se van depositando en los intersticios y

294

al acumularse, termina tapando los contactos, lo que provoca dificultades tales como letras
que no se marcan o se repiten y lentitud en la escritura.
Tampoco es una buena costumbre dejar la taza de caf cerca del teclado o apoyada
sobre el gabinete, el derrame de cualquier lquido sobre el teclado puede anular el
funcionamiento de los contactos y facilitar al adherencia de suciedad, provocando problemas
como los recin mencionados.
Por otra parte, al quedar expuesto sobre el escritorio, el teclado se convierte en un
inevitable depositario del polvo ambiental. Por ello, se recomienda, cubrirlo con una funda
mientras no este en uso.
Si se desea limpiarlo superficialmente nunca emplee alcohol comn o sustancias
solventes ya que puede daar su mecanismo. En cambio, utilice alcohol isoproplico, un
aerosol de aire comprimido o simplemente un trapo hmedo-

MOUSE (RATON)
A fines de los 60 en California se desarrollo un dispositivo que consisti en una cajita
capaz de ajustarse en la concavidad formada por la palma de la mano ( ergonmicamente ).
El ratn es la extensin del dedo humano para sealar, tocar y escoger los objetos
que se muestran ella pantalla. El mouse es simplemente un controlador del cursos o
puntero que aparece en la pantalla del sistema informtico al que se conecta.
Este posee un software asociado que relaciona las filas y las columnas de la pantalla
del sistema informtico con un espacio situado en una superficie donde se sita el aparato.
Un decodificador convierte el movimiento del ratn en movimiento del cursos en la pantalla
de la computadora.
En el ratn se utiliza una bola de acero pesada, cubierta de goma, metida dentro de
una caja de plstico. Dentro de la caja hay dos ruedas dentadas que se friccionan contra la
bola de acero y que se mueven segn se gire la bola a travs de una superficie plana. Estas
ruedas son las que informan a los circuitos integrados del ratn los cambios de posicin.
Suelen tener dos o tres botones para poder ejecutar las diferentes operaciones por
ejemplo: en el proceso de sealamiento y doble click para abrir un documento o en la
operacin de hacer click y arrastrar en la que el botn del ratn se mantiene oprimido, para
arrastrar un objeto o para seleccionar una opcin en el men desplegable.
Existen dos tecnologas principales en fabricacin de ratones: Mecnicos y pticos.
1- Ratones Mecnicos:
Los ratones mecnicos constan de una bola situada en su parte inferior, la bola, al
moverse el ratn, roza unos contactos en forma de rueda que indican el movimiento del
cursor en la pantalla del sistema informtico.
2- Ratones pticos:
Los ratones pticos tienen un pequeo haz de luz lser en lugar de la bola rodante de
los mecnicos. un sensor ptico situado dentro del cuerpo del ratn detecta el movimiento
del reflejo al mover el ratn sobre el espejo e indica la posicin del cursor en la pantalla de
la computadora.
Una limitacin de los ratones pticos es que se ubican sobre una superficie que refleje
el haz de luz.

295

Tipos de ratones
Ratones Inalmbricos.
Funcionan en base al envo de una seal infrarroja o una onda de radio a una unidad
receptora la cual es la encargada de enviar la informacin a la tarjeta correspondiente.

Ratones Estacionarios.
Estos se basan en la tecnologa Marble Sensing, que posibilita el usuario un alto grado
de precisin y libertad en los desplazamientos del cursor (Tracking), esto se debe a que a
diferencia de los traskballs y ratones tradicionales, no incorpora elementos mecnicos y por
consiguiente no requiere de mantenimiento. La tecnologa Marble Sensing permite la
medicin ptica del movimiento mediante un sistema electrnico que acta como una
cmara, de manera que es capaz de calcular el desplazamiento del cursor

PANTALLAS TCTILES:
Este dispositivo se usa en espacios reducidos y /o en lugares abarrotados de objetos,
donde el movimiento del mouse se toma dificultoso, su aspecto es agradable y fino y su
ergonoma se adapta de manera cmoda y natural. Su funcionamiento es simple para ello
basta con posesionar un dedo sobre el pequeo pad y desplazarlo por su superficie, que
hace las veces de pantalla, no acepta otros objetos como lpices o puntos. El click se puede
hacer tanto presionando las dos pequeas teclas ubicadas sobre el pad como ejecutando un
leve golpe sobre su superficie, no requiere mantenimiento fsico , al no experimentar
continuos movimientos con el uso, su cable presupone una mayor vida til.
Una de las desventajas es que su precisin no es como la del mouse pero la mayor
dificultad se registro al intentar manejar el dispositivo con la mano hmeda, el puntero se
desplaza a la deriva por la pantalla.

BOLAS GIRATORIAS:
Son similares a los ratones, excepto que el cursor se mueve utilizando uno o ms
dedos para hacer girar la bola, no necesitan una superficie plana como el ratn esto es
importante para ambientes reducidos y computadoras porttiles de bateras. Las bolas
giratorias tienen al menos dos botones: uno para hacer click o doble click y otro para
seleccionar men y arrastrar objetos.

ESCANER
Son lectores pticos de imgenes. No es fcil almacenar imgenes dentro de la
computadora, la nica forma fcil y rpida de hacerlo es utilizando un perifrico de este
tipo. Los escner leen imgenes en dos dimensiones y las convierten en bits.
El principio de funcionamiento de un escner es la digitalizacin, es decir, la
conversin de una informacin analgica a datos comprensibles por la P.C. para ello se vale
de una serie de componentes internos que posibilitan este objetivo. Una fuente de luz va
iluminando, lnea por lnea la imagen o documento en cuestin y la luz reflejada en la
imagen es recogida por los elementos que componen el CCD (Charged-Couple Device)
dispositivo que convierte la luz recibida en informacin analgica. Por ltimo un DAC
(Digital- Analog Converter) convierte los datos analgicos en valores digitales.
Los escner se asocian a un tipo de software especialmente diseado pata el manejo
de este tipo de informacin en cdigo binario llamados OCR (Opticals Character Recognition
o reconocimiento ptico de caracteres); que permiten reconocer e interpretar los caracteres
de teclados por el escner en forma de una matriz de puntos e identificar y determinar que
caracteres son los que el subsistema est leyendo .
Un caso particular de la utilizacin de un escner ~ aunque representa una de sus
principales ventajas, es la velocidad de lectura e introduccin de la informacin en el
sistema informtico con respecto al mtodo tradicional de introduccin manual de datos por
medio del teclado, llegndose a alcanzar los 1200 caracteres por segundo.

Profundidad de color
El parmetro expresado en bits, indica el nmero de tonalidades de color que un pxel

296

puede adoptar; lo normal en la actualidad es un valor de 24 bits por pxeles. Los 24 bits de
color se han convertido en un estndar .
Hay algunos escner capaces de utilizar 30 o incluso 36 bits de color, pero la mayora
lo hacen a nivel interno, para disminuir el intervalo entre una tonalidad y la siguiente, pero
solamente envan a la PC 24 bits.

Tipos de escner:
Existen tres tipos :

Escner de mano.
Escner de sobremesa.
Escner de rodillo.
Escner de mano:
Es la alternativa ms econmica, puesto que elimina gran parte de los mecanismos
que encarecen a los dispositivos de sobremesa: ms correctamente el de traccin y que es
el usuario el que mueve el escner sobre la imagen o documento a digitalizar .

Ventaja:
Es econmico.
Ahorra espacio
Desventajas:

La poca fiabilidad en cuanto al proceso ya que depende de la


habilidad y el pulso del usuario y mover el escner de forma
demasiado lenta o rpida puede afectar el resultado final.
Escner de Sobremesa:
Representan la alternativa ms profesional y de calidad, aunque tambin
ms cara y realmente son los que ms se estn extendiendo. A modo de
pequeas fotocopiadoras, el documento o imagen se coloca sobre un cristal
bajo el cual la lente luminosa se desplaza, digitalizando el documento.
Ventajas:

Permite obtener una gran calidad y fiabilidad.


Desventajas:

Su tamao .

Su precio.
Escner de Rodillo:
Es una interesante alternativa, a medio camino entre los dos anteriores, como su
nombre lo indica utiliza como mecanismo de traccin un rodillo que recoge
automticamente el documento y lo digitaliza. La calidad obtenida no es tanta como los
modelos de sobremesa pero es una excelente opcin para usuarios con determinadas
necesidades.

Calibracin
Estos dispositivos necesitan ser calibrados, muchos escner de mano incluyen una
hoja con diferentes tonalidades de color, que debe ser digitalizado para que nuestro
perifrico, establezca los patrones necesarios. Aunque todos los modelos permiten la
calibracin cada vez se utiliza con mayor frecuencia-

LECTORES DE CODIGO DE BARRA


Uno de los medios ms modernos y que est tomando cada vez ms auge, de
introducir informacin en una computadora es por medio de una codificacin de barras

297

verticales.
Cada vez son ms los productos que llevan en su etiqueta uno de estos cdigos
donde, por medio de las barras verticales de color negro, se consigue una identificacin
para todo tipo de productos.
Esta codificacin ha sido definida de forma estndar por la Organizacin de Estndares
Internacionales y, en ella, cada una de las lneas tiene un determinado valor dependiendo
de su presencia o ausencia y tambin de su grosor .
Los lectores de cdigo de barras captan los datos de entrada al sistema informtico al
hacer pasar delante de un censor ptico la serie de barras verticales codificadas. El principal
uso que se le da a estos subsistemas es el de control de mercaderas, como as tambin el
control
de
acceso
de
personal
en
instalaciones
de
distinta
ndole.
Los censores lectores de barras pueden estar fijos en una estructura de diferentes tamaos
y tecnologas, como pueden ser los que tienen en las cajas de algunos supermercados, o
bien en forma de lpiz ptico .
El censor lector de las barras convierte el cdigo de barras en impulsos elctricos que
representa la informacin contenida en la etiqueta. A su vez, un decodificador convierte los
pulsos elctricos en cdigo binario para su tratamiento en la computadora.

TABLETA DIGITALIZADORA
Son herramientas que permiten el manejo del cursor a travs de la pantalla del
sistema informtico y facilitan una importante ayuda en el tratamiento de los comandos de
rdenes en aplicacin de CAD / CAM (Diseo asistido por computadora).
Las tabletas digitalizadoras convierten una serie de coordenadas espaciales en un
cdigo binario que se introduce en la computadora. Estas coordenadas sern manejadas
posteriormente por programas de dibujo, ingeniera, etc.
La tableta suele tener impresos en su armazn pulsadores con smbolos dibujados
para ejecutar de modo directo comandos que agilizan el trabajo de manejo de software.
Estas tabletas poseen una resolucin de alrededor de una dcima de milmetro y
pueden manejar grficos en dos y tres dimensiones.
Una posibilidad de manejo muy intuitiva convierte a las tabletas digitalizadoras en
unas herramientas muy tiles y polivalentes en los sistemas informticos de diseo y
manejo de grficos.
Existen diversas tecnologas de construccin de tarjetas, pudiendo ser estas:
Tabletas Mecnicas
Tabletas Electrnicas.
La mecnicas, debido al desgaste producido en sus componentes por el uso
continuado, son menos precisas y ms delicados de manejar que las electrnicas, siendo
esta, por ello, la ms extendidas comercialmente en el mercado.

LECTORES DE TARJETAS MAGNETICAS


Los lectores de tarjetas magnticas leen la informacin impresa en una banda
magntica de manera semejante a como la grabadora lee la msica de la cinta.
Tras leer la informacin de la banda magntica de forma similar a como lee la
informacin la cabeza lectora de un disco duro, el lector de tarjetas enva los datos n forma
de bit a la unidad central del sistema de la computadora para su tratamiento.

LAPIZ OPTICO:
Los lpices pticos son dispositivos de introduccin de datos que trabajan
directamente con la pantalla de la computadora, sealando puntos en ellas y realizando
operaciones de manejo de software. Para operar con el lpiz ptico se coloca este sobre la
pantalla del sistema informtico. En el momento en el que el can de rayos catdicos de la
pantalla barre el punto sobre el que se posiciona
El lpiz, este enva la informacin aun software especial que la maneja. El
microprocesador calcula cual es la posicin sobre la pantalla de la computadora permitiendo
manipular la informacin representada en ella. Los lpices pticos permiten la introduccin
de datos, el manejo del cursor, etc., en la pantalla de la computadora. Son una asistencia

298

para la limitaciones de los teclados en algunas aplicaciones, sobre todo las que no son de
gestin puras ( creativas, etc.).

PERIFERICOS DE ALMACENAMIENTO:
Los perifricos de almacenamiento, llamados tambin de memoria auxiliar, son unos
dispositivos en los que se almacenan, temporal o permanentemente, los datos que va a
manejar la CPU durante el proceso, y que no es posible mantener en la memoria principal.
Los perifricos de almacenamiento se pueden clasificar de acuerdo al modo de acceso
a los datos que contienen:

Acceso Secuencial: debe seguir una secuencia donde la informacin


que requiere, puede estar al principio o al final del soporte que lo contiene, es decir
que si o si debe recorrer todo el espacio ocupado hasta donde se encuentre la
informacin solicitada
Acceso Aleatorio: el elemento de lectura accede directamente a la
direccin donde se encuentra almacenada fsicamente la informacin, sin tener que
pasar previamente por la entre el principio de la superficie de grabacin y el punto
donde se almacena la informacin buscada.
Es evidente la reduccin de tiempo que presenta el acceso aleatorio frente al
secuencial, pero la utilizacin de la tecnologa de acceso secuencial se debi ala
implementacin de la cinta magntica, anterior a la puesta en marcha operativa del primer
perifrico de acceso aleatorio .
En la actualidad, las cintas magnticas tradicionales se estn relegando poco a poco a
simples soportes de almacenamiento de datos histricos del sistema informtico o de
procesos peridicos de copias de seguridad.

Discos
Los discos son dispositivos que estn fabricado en un material rgido o flexible y se
utilizan habitualmente como perifricos de apoyo al proceso de la computadora, siendo el
principal medio de almacenamiento de la informacin que utilizan las computadoras. El
acceso a la informacin almacenada se realiza en forma aleatoria.
Habitualmente se les conoce como memoria masiva.
La clasificacin de los tipos de discos magnticos es de carcter fsico. Se diferencian
entre s en el soporte sobre el que se deposita la capa de material magntico. Los discos
magnticos se clasifican en:

Discos Flexibles (floppy disks )

Discos Duros (hard disks)


Una computadora personal posee una o dos unidades para trabajar con discos
flexibles. A estas unidades de trabajo se las denominan disqueteras. El tamao de los discos
que se utilizaran en las disqueteras puede ser de 31/2 pulgadas (unidad "A") o de 5 1/4
pulgadas (unidad "E").
Los discos duros generalmente se denominan unidad "C". Los discos duros tienen
mayor capacidad de almacenamiento sobre el mismo espacio que los discos flexibles,
debido a que aquellos tienen una mayor densidad de pistas por pulgada.
La velocidad de acceso a la informacin es considerablemente mayor en los discos
duros que en los disquetes debido a la mayor velocidad de giro de los platos de los discos
duros ya que no existen friccin entre las cabezas lectoras y los platos del disco.
La principal ventaja que poseen los disquetes frente los discos duros es su
portabilidad.

Discos flexibles
Son unos de los componentes ms delicados del sistema informtico, debido a que la
portabilidad, precisamente su ventaja, implica que sean muy vulnerables a los malos tratos
por una manipulacin descuidada cuando se encuentran fuera de las disqueteras de la
computadora.

299

Actualmente existen dos formatos de discos flexibles que se diferencia segn la


longitud de su dimetro: los de 5 1/4 pulgadas y los de 31/2 pulgadas. Es este ultimo
formato el que se est imponiendo en estos momentos por su mayor seguridad y facilidad
de manejo.
Las diferencias entre los dos formato s, adems del tamao ya reseado, se presenta
en:

Fiabilidad del soporte.


Los discos flexibles con formato de 31 12 pulgadas estn mucho mejor protegidos por
un plstico rgido y un escudo, plstico o metlico, que protege una ranura existente en la
superficie del material protector del disco (la ventana de lectura) que los discos de 5 1 14
pulgadas, envueltos en un plstico de mucho menos grosor y sin proteccin en la ventana
de lectura

Facilidad de manejo y almacenamiento.


La mejor proteccin de los discos que tienen formato de 31/2 pulgadas, su facilidad
para el manejo habitual y las menores restricciones para su almacenamiento, mientras no
sea utilizado el soporte fsico, le dan importantes ventajas sobre los discos de 5 114
pulgadas.
El material sobre el que se construyen los disquetes flexibles es un plstico, mientras
que, en los discos duros, el soporte fsico es una base de aluminio.
La lectura de la informacin grabada en los discos flexibles se realiza mediante una
cabeza lectora que entra en contacto directo con la superficie del disco a travs de la ranura
de la funda de proteccin.

1. Disco flexible de 5 1/4 pulgadas


Los disquetes de 5 1/4 pulgadas se protegen mediante una cubierta de plstico cuyo
interior es antiesttico y autolimpiante.
Poseen un agujero central que le sirve para encajar en el mecanismo de rotacin, un
pequeo agujero de control que sirve para detectar el comienzo de cada pista y una
abertura en la cubierta de plstico que le permite ala cabeza lectora el acceso a los discos.

2. Disco flexible de 3 1/2pulgadas

Poseen una cubierta de plstico mucho ms rgida que la de los de 5 1/4, ello aumenta
en gran medida la seguridad de los datos que contienen.
El mecanismo de rotacin se engancha a dos muescas situadas en la parte inferior de
un eje de rotacin metlico, que es la nica parte del disco que sobre sale del exterior .
En la actualidad se estn desarrollando otros formatos de discos flexibles ms
pequeos que los existentes, que oscilan entre una o dos pulgadas, aunque todava no se
estn comercializando.

Disco duro
El primer disco duro surge a mediados de los aos cincuenta diseado por mM. Tenia
un tamao aproximado de un televisor y slo poda almacenar 5 megabytes de datos; su
tiempo medio de acceso era aproximadamente de medio segundo.
En la actualidad, un disco duro con una capacidad de un gigabyte cabe en la palma de
la mano y su tiempo de acceso es de unos 12 milisegundos.
Los discos duros son el principal subsistema de almacenamiento de informacin en los
sistemas informticos.
El interior de un disco duro se compone de unas o varias placas cuya superficie est
magnetizada y una serie de cabezas lectoras, una para cada una de las diferentes
superficies en que se divide cada placa.
La superficie til total del disco duro se divide en:

300

Pistas: Se denomina pistas a cada una de la circunferencia de placa


del disco. Las pistas se dividen en pequeos espacios de similar
tamao donde se graba la informacin. En los discos la informacin
se graba en serie, ya que las pistas tienen un bit de ancho, en las
cintas, la informacin se graba en paralelo puesto que estn
compuestas de 9 pistas paralelas.
Sectores: El sector la mnima cantidad de informacin que se
maneja al realizar un acceso al disco.
La divisin del disco se realiza para hacer ms rpido el acceso a la
informacin almacenada en la superficie, ya que para la cabeza
lectora es mucho ms sencillo saber que la informacin a localizar
est, por ejemplo, en la pista 3 sector 5 que tener que buscar esa
informacin por toda la longitud de la pista 3 .
Cilindros: El cilindro est formado por la totalidad de las superficies
tiles existentes en las diferentes placas que forman el disco duro. La
razn por la que se realiza esta divisin es que la superficie de una
placa del disco es limitada, pero si se instalan varias placas
superpuestas dentro de la misma carcasa del disco duro, cada una
con su dispositivo de lectura-escritura se aumenta la capacidad de
almacenamiento del disco.
El disco duro que se instala en la unidad central del sistema de una microcomputadora
se denomina Winchester .
Esta tecnologa se caracteriza porque la cabeza lectora no toca fsicamente al disco
duro. La principal ventaja del mtodo Winchester es que ni 1a superficie del disco ni la
cabeza de lectura sufren desgaste por el razonamiento, por ello es mucho mayor el tiempo
de vida medio de estos subsistemas de almacenamiento.
La carcaza es de un material rgido, metlico o plstico de gran dureza que sirve para
proteger fsicamente los discos y cabezales situados en el in6terior del subsistema.
Existen dos tipos principales de discos duros:

1.

2.

Discos fijos:
Los discos fijos se fabrican dentro de una carcasa sellada de la que
no se puede extraer. El montaje de los componentes internos del
disco se realiza en la fabrica con unas condiciones muy estrictas de
limpieza y aislamiento para evitar la entrada de polvo que pudieran
deteriorarlo. Por ello nunca debe abrirse la carcasa de proteccin de
un disco duro excepto por personal tcnico en las condiciones
adecuadas.
Disco removibles:
Los discos removibles estn montados en un contenedor, tambin
sellado, que ,les permite entrar y salir de unos habitculos
especiales. Estos habitculos estn situados en la carcasa de la
computadora o bien conectados a sta por medio de un cable
interfaz.

Discos opticos:
Los discos pticos son un medio de almacenamiento de informacin
mayor flexibilidad, seguridad y capacidad de almacenamiento que
convencionales de almacenamiento magntico (disquetes y cintas). Su
similar ala de los "compact disks" (disco de msica) pudindose almacenar
megabytes de informacin por cada disco.

que permite una


los subsistemas
base tcnica es
alrededor de 600

301

En estos momentos la principal funcin de los discos pticos es la distribucin


comercial de software debido a su gran capacidad de almacenamiento.
Existen dos tipos diferentes de discos pticos, dependiendo de la posicin del escrito o
no sobre el disco:

1. Tcnica lser:
La tcnica lser graba la informacin agujereando, mediante un rayo,
un soporte sensible a su accin y lee, mediante un rayo similar, la
informacin contenida en el soporte. Como los agujeros son
permanentes, la informacin grabada tambin es permanente. Cada
posicin de un agujero es un bit que tomar uno de los dos valores
posibles del cdigo binario.
2. Tcnica magneto-pticas:
Las tcnicas magneto-pticas se basan en un material de una
superficie magntica que al ser calentado a gran temperatura por el
lser e inducido por una corriente elctrica cambia su polarizacin
magntica y se almacena la informacin.
La ventaja de esta seguridad tcnica es la no destructividad, el lser no realiza
agujeros como en el caso anterior, pudindose grabar informacin varias veces sobre la
misma superficie.

Cintas magneticas:
Las cintas magnticas son el tipo ms elemental de los perifricos destinados al
almacenamiento de datos. Fueron el primer subsistema que utiliz un medio magntico
como soporte de almacenamiento masivo de informacin.
En su origen las cintas magnticas se utilizaron como unidades de almacenamiento y
apoyo al proceso de informacin, de la misma manera que ahora se utilizan los discos, si
bien en la actualidad, debido a sus limitaciones, se utilizan generalmente slo como soporte
de copias de seguridad.
La primera unidad de cinta se comercializ a primeros de los aos cincuenta, posea
una capacidad de almacenamiento de 1,44 megabytes un tamao similar al de un disquete
de 31/2 pulgadas. El soporte fsico sobre el que se construye la cinta es una tira de plstico
de media pulgada (1,25cm) de ancho y unos 800 metros de largo sobre la que se deposita
una capa de un material magntico donde se realiza la grabacin y lectura.
La principal ventaja de utilizar este tipo de soporte es su bajo costo. La diferencia
entre las cintas magnticas y el disco es el tipo de acceso, es decir , en las cintas
magnticas el acceso es puramente secuencial mientras que en el disco el tipo de acceso es
de forma aleatoria.
El inconveniente es su lentitud, comparada con los dems medios de almacenamiento
actuales, tambin es que no puede utilizar toda su longitud para almacenar datos.

DVD:
La cinta de video permiti a los poseedores de aparatos reductores/ grabadores poder
ver y grabar pelculas y programas de TV .
Uno de los problemas a los que se enfrentaron en un principio fue la existencia de dos
formatos incompatibles entre s: VHS y Betamax. Al final la batalla la gan el sistema VHS
por el gran nmero de pelculas que se lanzaron en dicho formato ya pesar de que la
cantidad de imagen y sonido era inferior ala ofrecida por Betamax.
Para solucionar esta carencia se creo el Lser Disk. La cantidad era superior ,el sonido
era equiparable al del Compact Disk, los discos duraban ms, y se poda acceder a
diferentes secciones de la pelcula.
Los discos eran demasiados grandes, haba que darles la vuelta y sobre todo, no se
poda grabar. Los fabricantes volvieron a digitalizar y comprimir las pelculas mediante
tecnologa MPEG-1 , lanzaron al mercado el video-cd, que ofreca gran calidad de imagen y

302

sonido sobre un soporte mas extendido como era el CD. La idea de formato CD era buena
pero se necesitaba conseguir mayor calidad a base de aumentar la capacidad de los discos.
En 1994 surgieron dos propuestas diferentes entre si: Toshiba y Time Warner (entre otras)
presentaron su proyecto de un disco de doble cara llamado SD (Super Density), mientras
que Philips y Sony hicieron lo propio el MMCD (multimedia CD) pero con un disco de una
sola cara aunque con dos capas.
Luego surgi el disco de doble cara ya la vez de doble capa llamado Digital Vdeo Disk
o DVD. Poco despus, y viendo el potencial que podra tener en el mundo de la informtica,
el nombre paso a ser digital Versatile Disk. El cambio del nombre se debi a que no solo
servira para almacenar vdeo sino que tambin podra almacenar datos y sonido .

Prestaciones del DVD:


El disco "bsico" de DVD consta de una sola cara y una sola capa (equivalente a 4,7
Gb de datos), lo que ya de por si le permite almacenar 133 minutos de vdeo de alta
calidad, tres pistas de sonido Dolby Digital y cuatro conjuntos de subttulos para otros
tantos idiomas. Si adems se hace uso de las dos caras y las dos capas se llega ya alas 8
horas de vdeo, 8 idiomas simultneos y 32 subttulos diferentes.
Al ser un soporte ptico las pelculas no se deterioran con el uso, y uno siempre
obtiene la mxima calidad en pantalla. Incluso mantiene la compatibilidad con los CD de
audio, que podrn escucharse sin problemas en cualquier reproductor .
Debido a la gran capacidad de almacenamiento permitir su uso como backup o copias
de seguridad.

El disco por dentro:


Dado que en un CD-ROM podan almacenarse 680 Mb y el DVD llega a almacenar 17
Gb ha hecho falta almacenar la informacin de forma diferente para dar cabida a tanta
cantidad de datos.
Lo primero que se ha hecho ha sido reducir y compactar el tramado de pits o puntos
que se asientan sobre la superficie del disco; en el DVD el tamao de estos puntos se ha
visto sustancialmente reducido, as como la distancia existente entre estos dando lugar a
una mayor densidad de grabacin en un mismo espacio. Para leer estos micro-puntos hace
falta un lser de menor grosor que el convencional se pasa de unos 780 mm de longitud de
onda del CD-ROM a los de 635 a 650 mm del DVD.
Para mejorar el enfoque y la calibracin se ha sustituido el haz infrarrojo por un haz
rojo. Al reducir el grosor de la capa de grabacin a la mitad se ha permitido dotar a un
mismo disco de dos caras y se ha dividido cada cara en dos capas diferentes.

La compresin MPEG-2:
Al igual que sucede con el video-cd o el CD-I ,la imagen se encuentra comprimida
pues de no ser as se necesitaran 700 Mb. para almacenar nicamente 6 minutos de vdeo.
La diferencia es que en esta ocasin se ha optado por la compresin MPEG~2 bastante mas
avanzada que su predecesora .A pesar de que el concepto que envuelve a la norma MPEG-2
es similar ala MPEG-l se han incluido extensiones para cubrir un rango de aplicaciones mas
amplio como la cuantizacion no lineal, la divisin de la seal de vdeo en dos o mas canales
a diferente resolucin o la inclusin de canales de datos diferenciados. Al hacer uso de la
Tecnologa de comprensin MPEG se llega a una cantidad que ronda el medio megabytes
por segundo.

El futuro del DVD:


El DVD va a permitir la escritura de discos por medio de unos grabadores llamados
DVD-R.
La utilidad de estos discos en el campo de la informtica es evidente, pero no lo es
tanto en el campo del vdeo domestico: un usuario solo opondra grabar una sola vez en
cada disco, y dado que su especificacin solo permite una capacidad de 2,6 Gb la duracin
se ve limitada a solo una hora de vdeo.
y es aqu donde entra en escena el DVD-RAM sobre los diferentes metales en los

303

discos se puede sobre escribir cerca de 1000 veces.

PERIFERICOS DE SALIDA:
Los perifricos de salida son las unidades del sistema informtico a travs de las que
la computadora entrega informacin al mundo exterior .
La tecnologa de los perifricos de salida ha evolucionado mucho desde que la
computadora entregaba su respuesta en una cinta o en una hoja de papel. En la actualidad,
s esta experimentando con perifricos de salida mucho ms intuitivos y fciles de
comprender para el hombre como los sintetizadores de voz, etc.

PANTALLAS DE SISTEMAINFORMATICO (Monitor):


Es el perifrico ms utilizado en la actualidad para obtener la salida de las operaciones
realizadas por la computadora. Las pantallas de los monitores muestran una imagen del
resultado de la informacin procesada por la computadora.
El tamao de la pantalla de computadora ms habituales entre los actuales sistemas
microinformticos suelen ser el de 14 pulgadas, si bien existen tamaos de pantallas
diferentes para sistemas informticos especializados, por ejemplo 21 pulgadas para
sistemas informticos de autoedicin. Los sistemas informticos porttiles suelen tener
tamao de entre 9 y 14 pulgadas.
La imagen formada en la pantalla de la computadora tiene una unidad elemental
llamada pixel. Los pixels del monitor forman una matriz de puntos de luz que dibujan la
imagen de cada uno de los caracteres que aparecen en la pantalla de la computadora.
Los colores que pueden aparecer en la pantalla de un sistema informtico estn
determinados por la paleta de colores. Las paletas oscilan entre los cuatro colores bsicos
de la CGA y 256.000 colores de la SVGA.
Las pantallas de las computadoras pueden tener varios formatos entre los que se
pueden destacar:
1. Pantallas de computadoras de rayos catdicos:
Este tipo de pantallas de computadora son similares a las pantallas del televisor, pero
se diferencian de manera importante en su modo de funcionamiento.
Las pantallas de computadora de rayos catdicos son el tipo de tecnologa de pantalla
de sistemas informticos ms extendidos en la actualidad entre las computadoras
comerciales.
Las pantallas de computadora de rayos catdicos pueden ser monocromas ( de un solo
color, normalmente verde, blanco o mbar) o policromas. En estos momentos casi
todos los sistemas informticos comerciales se configuran con pantallas de color .
2. Pantallas de computadora de cristal lquido:
Las pantallas de computadora de cristal lquido se utilizaron en algunos sistemas
informticos porttiles por su mayor manejabilidad y menor tamao que las pantallas
de rayos catdicos.
El mayor inconveniente de este tipo de pantallas de computadora era que deban ser
monocromas porque no podan manejar color.
En la actualidad se puede ver sobre todo en algunos tipos de calculadoras.
3. Pantallas de computadora de plasma:
Son el tipo de pantallas que se estn imponiendo actualmente en los sistemas
informticos porttiles, puesto que tiene las misma ventajas que las anteriores,
alcanzando una mayor definicin y la posibilidad del color.
El tamao lgico de las pantallas de los sistemas informticos se determinan de forma
distintas en dos diferentes modos de trabajo vistos anteriormente en el apartado de
las tarjetas grficas:
Modo de texto: Las pantallas del sistema informtico slo pueden mostrar los 128
caracteres definidos por el cdigo ASCII, aunque algunas pantallas de computadora
pueden mostrar hasta 256 caracteres por el modo extendido de dicho cdigo.
El tamao lgico de la pantalla de los sistemas informticos se mide por el nmero de

304

filas y el de columnas de caracteres que pueden representar en la pantalla de la


computadora. El tamao ms expendido es el de 24 o 25 lneas y 80 columnas.
Modo Grfico : La pantalla del sistema informtico se divide en una serie de punto de
informacin
que
aparece
en
su
superficie.
El tamao lgico de la pantalla de la computadora est directamente relacionado con
la cantidad de informacin en forma de puntos por filas que proporciona la tarjeta
grfica conectada a la pantalla del sistema informtico. El nmero de punto puede
llegar los 1280 puntos por 1024 filas en las tarjetas grficas SVGA.
Es evidente la mayor potencia del medio grfico que el modo de texto, por ello, en la
actualidad, prcticamente todas las tarjetas controladoras de los subsistemas de vdeo
de las computadoras trabajan en modo grfico.

Impresoras
Su funcin en el sistema informtico es obtener una copia en papel de la informacin
existente en memoria o en disco.
Para que una impresora pueda funcionar correctamente debe estar en posicin ONLINE, lo que quiere decir, que se encuentre en lneas con la computadora a la espera de
recibir datos que el usuario a solicitado imprimir .
La introduccin de circuitos integrados en los mecanismos de las impresoras a
permitido una mayor flexibilidad y potencia con respecto a las primeras teletipos
completamente electromecnico que actuaban como perifricos de salida en algunos
sistemas informticos antiguos.
La instalacin de memoria intermedias y otras de ayudas electrnicas ha ayudado a
mejorar los subsistemas de impresin al descargar partes de las tareas de impresin desde
la C.P.U. en estos controles internos de la impresora.
Dependiendo de su tecnologa de construccin, las impresoras pueden dividirse en:

Impresoras con cinta entintada.


- Impresoras de margaritas
- Impresoras de bolas.
- Impresoras de agujas.

Impresoras sin cinta entintada.


- Impresoras trmicas
- Impresoras de inyeccin de tintas
- Impresoras lser.
- Impresoras lser color.
- Impresoras de pelculas grficas.

Impresoras con cinta entintada:


La principal caracterstica de las impresoras de cintas entintadas es un mtodo de
impresin: Una cinta humedecida con tinta que golpea contra el papel por un tipo metlico
o un grupo de agujas formando un carcter .
Este tipo de impresora son una evolucin tecnolgica de los antiguos modelos de
mquinas de escribir donde se han mejorado las prestaciones de velocidad y de forma de
impresin.
Sus principales ventajas son el bajo costo y la facilidad de construccin, y sus
principales inconvenientes son su lentitud y el ruido que causa al golear sobre la cinta para
conseguir la impresin.
Es un tipo de impresora antiguo que ha sido retirada de algunos lugares por su
lentitud.
Su mecanismo se compone de una rueda alrededor de la cual estn colocados los
caracteres alfanumricos que se pueden imprimir .
La impresin se hace cuando una cpsula que tiene un relieve del tipo a imprimir se
encuentra enfrentada al papel. Un pequeo punzn golpea contra la cpsula y as al
martillar el tipo se imprime el carcter deseado.

Impresora de Bola:

305

Son similares alas impresoras de margaritas pero de mejor calidad. Los caracteres se
sitan sobre una esfera metlica que posiciona al carcter en el punto de impresin y
golpea ala cinta entintada para imprimirlo.

Impresoras de agujas:
En las impresoras de agujas el cabezal esta formado por 7 o 9 agujas que golpean una
cinta entintada entre sta y el papel, cada una de ellas tiene la posibilidad de un cierto
movimiento horizontal. Con esta capacidad se puede generar matrices de 7 por 5 o 9 por 7
puntos con los que se forman los diferentes caracteres.

Impresoras sin cinta entintadas:


Se caracterizan por la tecnologa de su mtodo de impresin al no necesitar una cinta
humedecida en tinta para imprimir.
Al no producir un impacto para realizar la impresin del carcter, estas impresoras son
mucho ms silenciosas. Permiten su uso en lugares de trabajos sin equipos especiales de
proteccin acsticas.
La disminucin de los preciso de este tipo de impresoras han determinado su amplia
difusin en el mercado.

Impresoras trmicas:
El mtodo es similar a las aguja, pero se diferencian en que, en lugar de utilizar un
papel normal, utilizan un papel especial termo sensible y en lugar de las agujas utilizan
unas resistencias elctricas que al calentarse y apoyarse sobre el papel, van generando loS
caracteres.
Esta tecnologa ha ido retirndose poco a poco del mercado debido a que el paso del
tiempo, la luz y, sobre todo, el calor afectaban mucho al papel termo sensible,
deteriorndose con el tiempo. Aunque en la actualidad es comnmente utilizada por los
equipos de fax.

Impresoras de inyeccin de tinta:


Las impresoras de inyeccin de tinta, tambin llamada chorro de tinta, utilizan una
especie de can a travs del cual se enva un chorro de tinta lquida hacia la hoja de papel
donde se va a realizado se va a realizar la impresin. Para poder controlar la inyeccin de la
tinta estn situadas a cada lado de la boca del can de tinta unas placas magnticas que
controlan el chorro de tinta disparado por el can hacia el papel para formar el carcter .

Impresoras lser:
El fundamento de este tipo de impresoras es un lser de baja potencia que genera un
rayo que es manejado por un elemento de control que permite o bloquea el paso de la luz.
Un disco de espejo desva al rayo barriendo repetidamente el tambor fotoconductor,
quedando los caracteres trazados elctricamente sobre el tambor . Al girar este se le aplica
un polvo de tinta pulverizada llamado tonner similar a la existentes en las fotocopiadoras y
que solo se adhiere a las zonas expuestas a rayos lser. Esta tinta es la que finalmente
forman los caracteres.
La impresoras lser son las que poseen una tecnologa de impresin ms rpida
( entre 4 y 8 paginas por minutos) y tambin una mayor definicin de caracteres o grficos
que van a formar el resultado final, obteniendo entre 300 y 600 puntos por pulgada.

Impresoras Lser de color:


El funcionamiento de las impresoras lser de color es similar alas impresoras lser en
blanco y negro, pero en lugar de utilizar un solo dispositivo de tinta utiliza tres dispositivos
con los colores fundamentales que se imprimen con una mayor o menor saturacin sobre el
papel para formar el color deseado en ese punto. La velocidad de impresin es algo ms
lenta que en las impresoras lser de tinta negra, debido a que aqu se deben gestionar tres
colores de tinta diferentes.

306

PERIFERICOS DE COMUNICACION..
MODEM
Los ordenadores trabajan con informacin digital (todos los datos) se almacenan en
forma de 1 y O. Las lneas, sin embargo, suelen analgicas t y trasmiten los datos como una
seal continua con una serie de picos y valles.
El Mdem es un Modulador/Demodulador (de all su nombre). Modulas los datos
digitales que salen del ordenador convirtindolos en una seal analgica. Despus demodula
esta seal que entra en el ordenador convirtindola de nuevo al formato digital.

Aspectos tcnicos
La tecnologa 56 K es algo diferente que la de los Modems analgicos de 14.000~
28.000 y 33.660. Para alcanzar mayores velocidades deben utilizar conexiones parcialmente
digitales.
La lnea telefnica anloga es el factor que limita la velocidad de transferencia de los
datos debido al ruido que introduce en las transmisiones.
Las lneas digitales tambin generan ruido y tienen un. lmite en la velocidad de
transmisin. Pero tiene menos ruido y, adems, permiten una velocidad de transmisin
mayor ala de las anlogas.
Poco a poco, todas las redes telefnicas se estn convirtiendo al formato digital.
El Sistema Telefnico como una red digital con una porcin analogica
Los fabricantes de Modems han creado tcnicas que utilizan las ventajas de esta
porcin digital de la red telefnica para conseguir mayores velocidades de transmisin
puramente analgica. En general, estas nuevas tcnicas tratan el sistemas telefnico como
una red digital que tiene una porcin analgica.
Esta conexin semi-digital obliga a varios compromisos. El ms importante ellos es
que el Proveedor de Servicios de Internet debe poseer lneas telefnicas digitales.
Los Modems 56 K consiguen una velocidad de transmisin ms elevada que los
mdems tradicionales. Se evita as, una conversin desde una lnea digital a otra analgica
en la conexin entre el usuario y el Proveer de Servicios.
Las conexiones normales se inician sobre una lnea analgica. La compaa telefnica
las convierte en digitales y vuelven a convertirse en analgicas, en el -5egmento final ante
de llegar al proveer de servicios. Las conexiones 56K comienzan siendo analgica, se
convierten en digitales y, sin embargo, no se vuelven a convertir en analgica en el
proveedor de servicios.
Los Modems 56K tiene sentido para algunas aplicaciones aunque no para otras. Por
ejemplo, las comunicaciones de mdem a mdem, no pueden aprovechar las mayores
velocidades, ya que necesita de los sistemas de un ISP en uno de los extremos de la
conexin, sin embargo, son tiles para acceder a Internet.

Como usar la Tecnologa 56K


Para aprovechar todas las ventajas de la tecnologa 56 K se necesitan tres cosas: 1)
Un mdem 56 K
2) Un Proveedor de Servicios de Internet que soporte 56K 3) Una lnea telefnica que
soporte 56K
Conseguir el mdem es muy fcil. En el mercado hay muchos dispositivos de este tipo
y cada da aparecen nuevos modelos. En cuanto al segundo punto, muchos ISP ya soportan
algunos de los protocolos 56K o planean hacerlo en un futuro cercano.
El tercer requisito, es quizs el ms problemtico de todos. Para alcanzar la velocidad
56K, solo debe hacer un proceso de conversin analgico / digital entre el ordenador y el
ISP. Si hay ms de uno, no se podrn utilizar los 56 K y la velocidad de conexin estar
limitada a 28.8 o 33.6K.
Para averiguar si nuestra lnea telefnica soporta la velocidad de 56K, la nica prueba
totalmente fiable es conseguir un mdem 56K y llamar a nuestro ISP . Cuando se compra

307

un mdem hay que asegurarse de que este pueda ser actualizado (preferiblemente
mediante un programa software gratuito) para hacerlo compatible con el estndar 56K
definitivo. Adems, estas actualizaciones permiten mejorar el rendimiento y eliminar errores
de forma rpida y sencilla sin tener que comprar un mdem nuevo o enviarlo a la fbrica
para que actualicen su hardware.

CONCLUSIN
Al haber realizado el trabajo de investigacin nos ayuda a tener una idea concreta
sobre los tipos de perifricos analizando y determinando en cada caso cual es el ms
conveniente para el usuario.
A merced de esto el trabajo grupal ayuda a establecer pautas que se debern seguir a
medida que se progresa en la investigacin.
Hubo que investigar en distintos libros y revistas y as ir determinando lo que cada
integrante deba realizar para lograr un buen fin. Tambin nos ha dejado como enseanza
que en el momento de adquirir un equipo debe tenerse en cuenta distintos aspectos como
ser:
Velocidad,
Capacidad de la RAM,
Servicio Tcnico,
Sistema operativo,
y elegir para nuestra conveniencia
y alcance los dems perifricos.

308

CONCLUSIN

309

BOLILLA VI (PARTE 2):


TCNICAS Y
DISPOSITIVOS DE
ENTRADA SALIDA

310

INDICE
INDICE GENERAL............................................................................................1
BOLILLA I: LA COMPUTADORA..............................................................................................4
INDICE.......................................................................................................................................5
INTRODUCCIN...................................................................................................................12
LA COMPUTADORA............................................................................................................13
CONCEPTO:.........................................................................................................................13
FUNCIONES Y ACCIONES:...............................................................................................13
Para qu sirve una computadora?:.........................................................................................13
Computadora y Circuitos:......................................................................................................14
HARDWARE Y SOFTWARE: ............................................................................................14
Software: ...........................................................................................................................14
Al software se lo clasifica en dos grupos: .....................................................................14
Hardware:...........................................................................................................................15
Arquitectura - Componentes Bsicos:...................................................................................15
Unidad de Control:.............................................................................................................15
Unidad aritmtico-lgica:..................................................................................................15
Memoria:(Memoria Central)..............................................................................................15
Perifricos: ........................................................................................................................15
Ncleo de la computadora: ...............................................................................................15
BUSES DE COMPUTADORAS:.........................................................................................16
Buses sncronos y asncronos: ..............................................................................................18
Arbitraje del bus:...............................................................................................................19
Ejemplo de encadenamiento margarita:.............................................................................19
Solicitud del Bus............................................................................................................19
Dispositivos de E/S............................................................................................................19
Manejo de interrupciones:.................................................................................................20
Canales de e/s.........................................................................................................................20
TECNOLOGA DE CANALES:.......................................................................................21
TIPOS DE CANALES:.....................................................................................................21
Multiplexor: ..................................................................................................................21
Selector..........................................................................................................................22
Multipexor por bloques: ................................................................................................22
Spoll: .........................................................................................................................22
SISTEMA OPERATIVO.......................................................................................................23
Introduccin: ....................................................................................................................23
QU ES UN SISTEMA OPERATIVO?.........................................................................24
CONCLUSIN........................................................................................................................25
BOLILLA II (Parte 1): EL NIVEL DE LOGICA DIGITAL.....................................................26
INDICE.....................................................................................................................................27
INTRODUCCIN...................................................................................................................34
EL NIVEL DE LOGICA DIGITAL......................................................................................35
COMPUERTAS Y ALGEBRA BOOLEANA......................................................................35
Compuertas........................................................................................................................35
Algebra booleana...............................................................................................................37
Implementacin de funciones booleanas ..........................................................................38

311

Equivalencia entre circuitos...............................................................................................40


CIRCUITOS DIGITALES BSICOS..................................................................................44
Circuitos integrados ..........................................................................................................44
Circuitos combinacionales ................................................................................................47
Multiplexores ................................................................................................................47
Decodificadores ............................................................................................................49
Comparadores ...............................................................................................................51
Arreglos (matrices) lgicos programables ....................................................................51
Circuitos aritmticos..........................................................................................................53
Registros de corrimiento................................................................................................53
Sumadores .....................................................................................................................54
Unidades aritmticas y lgicas......................................................................................55
Relojes ..............................................................................................................................55
MEMORIA............................................................................................................................57
Biestables...........................................................................................................................57
Bieslables SR sincronizados..........................................................................................59
Biestables D sincronizados............................................................................................59
Flip-flops y registros..........................................................................................................59
Registros........................................................................................................................60
Organizacin de las memorias...........................................................................................61
Propiedades de las memorias.............................................................................................64
MICROPROCESADORES y BUSES...................................................................................66
Microprocesadores ............................................................................................................66
Buses de computadora.......................................................................................................68
Buses sncronos .................................................................................................................70
BUSES ASINCRONOS....................................................................................................73
Arbitraje del bus ................................................................................................................74
Manejo de interrupciones ..................................................................................................77
CONCLUSIN........................................................................................................................79
BOLILLA II (Parte 2): EL NIVEL DE MICROPROGRAMACIN.......................................80
INDICE.....................................................................................................................................81
INTRODUCCIN...................................................................................................................88
EL NIVEL DE MICROPROGRAMACIN .......................................................................89
REPASO SOBRE EL NIVEL DE LGICA DIGITAL .......................................................90
Registros ..........................................................................................................................90
Buses .................................................................................................................................90
Multiplexores y decodificadores .......................................................................................92
Unidades aritmticas y lgicas y registros de corrimiento ...............................................92
Relojes ..............................................................................................................................93
Memoria principal .............................................................................................................94
Encapsulado de los componentes .....................................................................................95
UNA MICROARQUITECTURA TIPICA ...........................................................................96
La ruta de datos .................................................................................................................96
Microinstrucciones ............................................................................................................98
Cronologa de las microinstrucciones .............................................................................100
Secuenciamiento de las microinstrucciones ...................................................................102
UNA MACROARQUITECTURA TIPICA .......................................................................103
Pilas .................................................................................................................................103

312

El juego de macroinstrucciones ......................................................................................107


MICROPROGRAMACIN: UN EJEMPLO ....................................................................110
El lenguaje micro ensamblador .......................................................................................110
El ejemplo de microprograma .........................................................................................111
Observaciones sobre el microprograma ..........................................................................113
Perspectivas ....................................................................................................................114
EL DISEO DEL NIVEL DE MICROPROGRAMACIN ............................................115
Microprogramacin horizontal frente a microprogramacin vertical..............................115
Nanoprogramacin ..........................................................................................................122
Mejora del rendimiento ...................................................................................................123
Memoria cach ...............................................................................................................129
CONCLUSIN......................................................................................................................134
................................................................................................................................................135
BOLILLA II (Parte 3): EL NIVEL DE MAQUINA CONVENCIONAL................................135
INDICE...................................................................................................................................136
INTRODUCCIN.................................................................................................................143
EL NIVEL DE MQUINA CONVENCIONAL.................................................................144
EJEMPLOS DEL NIVEL DE MAQUINA CONVENCIONAL........................................144
FORMATOS DE INSTRUCCIN.....................................................................................145
Criterios de diseo de formatos de instruccin................................................................146
Cdigos de operacin con extensin...............................................................................147
Ejemplos de formatos de instrucciones...........................................................................149
La PDP-11...................................................................................................................149
Direccionamiento.............................................................................................................149
Direccionamiento inmediato........................................................................................150
Direccionamiento directo.............................................................................................150
Direccionamiento de registros.....................................................................................151
Direccionamiento indirecto..........................................................................................151
Indexacin....................................................................................................................152
Direccionamiento por medio de pilas..........................................................................153
Notacin polaca inversa...........................................................................................155
Evaluacin de frmulas en la notacin polaca inversa............................................157
Algoritmo.............................................................................................................157
Algoritmo.............................................................................................................157
Ejemplos de direccionamiento.....................................................................................160
Direccionamiento en la PDP-11..............................................................................160
Tipos de Instrucciones ........................................................................................................160
Instrucciones de movimiento de datos ............................................................................161
Operaciones binarias .......................................................................................................161
Operaciones unarias ........................................................................................................162
Comparaciones y Saltos Condicionales...........................................................................164
Instrucciones de llamada a procedimiento ......................................................................166
Control de iteraciones .....................................................................................................167
Entrada / salida ................................................................................................................168
Flujo De Control .................................................................................................................173
Flujo de control secuencial y saltos ................................................................................173
Procedimientos ................................................................................................................174
Corrutinas ........................................................................................................................179
313

Desvios ............................................................................................................................182
Interrupciones .................................................................................................................183
ACCIONES DE HARDWARE ..................................................................................183
ACCIONES DE SOFTWARE ...................................................................................184
CONCLUSIN......................................................................................................................187
BOLILLA III: ARQUITECTURA DEL PROCESADOR.......................................................188
INDICE...................................................................................................................................189
INTRODUCCIN.................................................................................................................196
ARQUITECTURA DEL PROCESADOR..........................................................................197
ESTRUCTURA GENERAL...............................................................................................197
DESCRIPCIN DE LOS COMPONENTES DE UN PROCESADOR ............................197
Microprocesadores...............................................................................................................200
EJECUCIN DE LAS INSTRUCCIONES .......................................................................201
ORGANIZACIN DE LA CPU ........................................................................................202
LA UNIDAD ARITMTICA Y LGICA .........................................................................204
LA UNIDAD DE CONTROL.............................................................................................206
FASE DE BSQUEDA DE LA INSTRUCCIN .............................................................207
FASE DE BSQUEDA O ALMACENAMIENTO DEL OPERANDO ...........................207
Caso de bsqueda del operando, seguido de procesamiento: .........................................207
Caso de almacenamiento del operando: ..........................................................................208
FASE DE PREPARACIN DE LA SIGUIENTE INSTRUCCIN .................................209
INSTRUCCIN DE RUPTURA DE SECUENCIA ..........................................................209
EL CANAL..........................................................................................................................210
LAS UNIDADES PERIFRICAS .....................................................................................211
INTERRUPCIONES ..........................................................................................................211
CONCLUSIN......................................................................................................................214
BOLILLA IV: MEMORIA........................................................................................................215
INDICE...................................................................................................................................216
INTRODUCCIN.................................................................................................................223
MEMoRia ..............................................................................................................................224
DIRECCIONES DE MEMORIA .......................................................................................225
ORDENAMIENTO DE BYTES ........................................................................................226
CDIGOS CORRECTORES DE ERRORES ....................................................................227
CLASIFICACIN Y ORGANIZACIN DE LAS MEMORIAS .....................................227
PARMETROS y CARACTERSTICAS MS IMPORTANTES DE UNA MEMORIA 228
Capacidad.........................................................................................................................228
Formas de acceder a las posiciones de memoria ............................................................229
Memorias de acceso aleatorio (RAM = Ramdom Acess Memory) ............................229
Estructura de una RAM semiconductora ................................................................231
Pastillas de memoria en paralelo ........................................................................233
Memorias pasivas....................................................................................................235
Memorias de acceso serie ...........................................................................................236
Memorias asociativas ..................................................................................................238
MODOS DE DIRECCIONAMIENTO ..........................................................................239
Modo de direccionamiento directo .............................................................................239
Modo de direccionamiento indirecto ..........................................................................240
314

Modo de direccionamiento relativo ............................................................................240


Modo de direccionamiento indexado ..........................................................................242
Modo de direccionamiento por registro indirecto .......................................................243
Otros modos de direccionamiento ..............................................................................244
CONCLUSIN......................................................................................................................245
................................................................................................................................................246
BOLILLA V: EL NIVEL DEL LENGUAJE ENSAMBLADOR.............................................246
INDICE...................................................................................................................................247
INTRODUCCIN.................................................................................................................254
EL NIVEL DEL LENGUAJE ENSAMBLADOR..............................................................255
INTRODUCCIN AL LENGUAJE ENSAMBLADOR ...................................................256
Qu es un lenguaje ensamblador? .................................................................................256
Formato de una sentencia en lenguaje ensamblador .......................................................257
Comparacin entre el. lenguaje ensamblador y los lenguajes de alto nivel ...................258
Afinacin de programas ..................................................................................................259
EL PROCESO DE ENSAMBLAJE ...................................................................................261
Ensambladores de dos pasadas .......................................................................................261
La primera pasada ...........................................................................................................262
La segunda pasada ..........................................................................................................266
La tabla de smbolos .......................................................................................................267
MACrOS .............................................................................................................................269
Definicin, llamada y expansin de una macro ..............................................................269
Macros con parmetros ...................................................................................................271
Implementacin de macros en un ensamblador ..............................................................271
MONTAJE (LINKING) y CARGA ...................................................................................272
Tareas realizadas por el programa ensamblador .............................................................274
Estructura de un mdulo objeto ......................................................................................276
Tiempo de ligadura y reubicacin dinmica ...................................................................277
Enlace dinmico ..............................................................................................................279
CONCLUSIN......................................................................................................................282
BOLILLA VI (Parte 1): PERIFRICOS.................................................................................283
INDICE...................................................................................................................................284
INTRODUCCIN.................................................................................................................291
PERIFRICOS......................................................................................................................292
RESEA HISTRICA.......................................................................................................292
INTRODUCCIN ...............................................................................................................292
PERlFERICOS DE ENTRADA: ........................................................................................293
TECLADO: .....................................................................................................................293
Cuidados y advertencias..............................................................................................294
MOUSE (RATON) .........................................................................................................295
Tipos de ratones...........................................................................................................296
Ratones Inalmbricos. .............................................................................................296
Ratones Estacionarios..............................................................................................296
PANTALLAS TCTILES: ............................................................................................296
BOLAS GIRATORIAS: .................................................................................................296

315

ESCANER ......................................................................................................................296
Profundidad de color....................................................................................................296
Tipos de escner:.........................................................................................................297
Escner de mano: ....................................................................................................297
Ventaja: ...............................................................................................................297
Desventajas: ........................................................................................................297
Escner de Sobremesa: ...........................................................................................297
Ventajas: .............................................................................................................297
Desventajas: ........................................................................................................297
Escner de Rodillo:..................................................................................................297
Calibracin...................................................................................................................297
LECTORES DE CODIGO DE BARRA.....................................................................297
TABLETA DIGITALIZADORA....................................................................................298
LECTORES DE TARJETAS MAGNETICAS...............................................................298
LAPIZ OPTICO: ............................................................................................................298
PERIFERICOS DE ALMACENAMIENTO: .................................................................299
Discos...........................................................................................................................299
Discos flexibles............................................................................................................299
Fiabilidad del soporte. .............................................................................................300
Facilidad de manejo y almacenamiento. .................................................................300
1. Disco flexible de 5 1/4 pulgadas .....................................................................300
2. Disco flexible de 3 1/2pulgadas ......................................................................300
Disco duro....................................................................................................................300
Discos opticos: ............................................................................................................301
Cintas magneticas: ......................................................................................................302
DVD:............................................................................................................................302
Prestaciones del DVD: ............................................................................................303
El disco por dentro: .................................................................................................303
La compresin MPEG-2: ........................................................................................303
El futuro del DVD: .................................................................................................303
PERIFERICOS DE SALIDA: ............................................................................................304
PANTALLAS DE SISTEMAINFORMATICO (Monitor): ...........................................304
Impresoras........................................................................................................................305
Impresoras con cinta entintada: ..................................................................................305
Impresora de Bola: ..................................................................................................305
Impresoras de agujas: ..............................................................................................306
Impresoras sin cinta entintadas: ..................................................................................306
Impresoras trmicas: ...............................................................................................306
Impresoras de inyeccin de tinta: ...........................................................................306
Impresoras lser: .....................................................................................................306
Impresoras Lser de color: ......................................................................................306
PERIFERICOS DE COMUNICACION.. ..........................................................................307
MODEM..........................................................................................................................307
Aspectos tcnicos.........................................................................................................307
Como usar la Tecnologa 56K ................................................................................307
CONCLUSIN....................................................................................................................308
CONCLUSIN......................................................................................................................309
BOLILLA VI (PARTE 2): TCNICAS Y DISPOSITIVOS DE ENTRADA SALIDA...........310
INDICE...................................................................................................................................311

316

INTRODUCCIN.................................................................................................................318
TECNICAS Y DISPOSITIVOS DE ENTRADA / SALIDA (Input / Ouput)..................319
Dispositivos de fichas y de banda perforada.......................................................................319
Dispositivos de soporte magntico......................................................................................323
Impresoras............................................................................................................................323
Plotter...................................................................................................................................330
La pantalla............................................................................................................................331
Terminales...........................................................................................................................332
Procesos de comunicacin para la transmisin de datos a distancia...................................334
Otros perifricos..................................................................................................................334
Tcnicas de entrada/salida (input/output)............................................................................335
Polling (interrogatorio de trfico) ...................................................................................336
Interrupciones (interrupts) ..............................................................................................338
Transferencia DMA ........................................................................................................339
GLOSARIO.........................................................................................................................340
CONCLUSIN......................................................................................................................342
CONCLUSIN FINAL..............................................................................................................343
BIBLIOGRAFA .......................................................................................................................344

317

INTRODUCCIN

318

APUNTES DE CATEDRA
CARRERA:
Ctedra:
Profesor:
AO:

LICENCIATURA EN ANALISIS DE SISTEMAS


INGENIERIA EN SISTEMAS
Procesamiento De Datos I
Lic. Marcelo Martinez
2003

TECNICAS Y DISPOSITIVOS DE ENTRADA / SALIDA


(Input / Ouput)
EL objetivo de este captulo es explicar los dispositivos ms comunes de entrada y
salida de datos. Puesto que en el anterior, hablando de las memorias masivas, ya
examinamos las principales caractersticas de los dispositivos de I/O (Input/Output =
entrada/salida) en soporte magntico, no los trataremos en ste.
Aprenderemos las principales tcnicas utilizadas en un sistema de ordenador para la
gestin de perifricos de entrada/salida (I/O), refirindonos a un sistema de
microprocesadores. Estas tcnicas, en sustancia, son las mismas que las utilizadas en los
sistemas de grandes y medianos ordenadores.
Por consiguiente, y para una mayor simplicidad, consideremos de ahora en adelante
una configuracin estndar para todos los perifricos, que prevea para cada uno de ellos,
por lo menos, un registro de estado y un buffer de I/O. El primero, generalmente est
constituido por un conjunto de bits que proporciona las informaciones esenciales sobre el
estado del perifrico (por ejemplo peticin de disponibilidad de un dato, buffer ocupado,
etc.).
El segundo es un registro de trnsito, de dimensiones variables, dependiendo del tipo
de perifrico, por el que pasan todos los datos de salida y de entrada.
Adems, generalmente, para las operaciones de I/O, en la memoria del ordenador
tambin existe un buffer de I/O (en general, de dimensiones distintas con respecto al del
perifrico en cuestin) que contiene los datos a transmitir.

DISPOSITIVOS DE FICHAS Y DE BANDA PERFORADA


Cuando un ordenador recibe los datos de entrada en fichas son necesarios los
siguientes dispositivos:
Una mquina perforadora para transformar manualmente los documentos originales
en fichas perforadas;
Una mquina verificadora para controlar que las perforaciones de las fichas sean
exactas;
Una mquina selectora para ordenar las fichas en base a campos determinados.
Realmente esta mquina casi no se utiliza, ya que se prefiere, desde que las
posibilidades del ordenador lo permiten, cargar las fichas desordenadas en un
soporte magntico y que esta tarea de ordenar la realice el mismo ordenador
mediante un programa (programas de seleccin):
Lectora de fichas conectada al ordenador.
Antes de hablar de estos dispositivos veamos en qu consiste una ficha.
Se trata de una pequea cartulina rectangular con una discreta resistencia y un buen
aislamiento elctrico. La ficha esta dividida en 80 columnas y 12 filas. Las filas estn
numeradas fsicamente de 0 a 9, existiendo tambin dos filas superiores a la fila 0 (la 11 y
la 12).
La caracterstica de las fichas es representar los datos carcter a carcter. Las cifras
se representan con una perforacin en la fila correspondiente; las letras del alfabeto se

319

obtienen por medio de dos perforaciones , de las que la superior puede ser la 12 (lnea ms
alta) o la 11 o la 0. Para los caracteres especiales se usan tres perforaciones en un misma
columna. Obviamente, no se aprovechan todas las combinaciones posibles de las
perforaciones en una columna.
Las perforadoras, como su nombre indica, taladran, perforan las fichas introducidas
(en la fig. 1, ejemplo de una perforadora Honeywell Bull). Los modelos ms perfeccionados
pueden incluso escribir en el borde superior el contenido de la perforacin. Se parecen, al
igual que las verificadoras, a mquinas de escribir. La nica diferencia reside en su mayor
tamao. En estas perforadoras se puede introducir un programa, representado por una ficha
perforada, el cual, reflejando el contenido de la ficha, facilita la perforacin de un grupo de
fichas.
En las verificadoras, las fichas llegan ya perforadas y comprueban, pulsando sobre el
teclado, las perforaciones existentes.

Foto. Perforadora de fichas. (Foto cedida por Honeywell Bull)

320

Foto. Detalle de una lectora de fichas (Foto cedida por Honeywell Bull)
Las lectoras de fichas, con un mecanismo de arrastre, hacen llegar las fichas hajo el
dispositivo de lectura, que puede ser electromecnico o fotoelctrico. La lectura puede ser
en serie, es decir, una columna tras otra, o en paralelo, una fila tras otra. En ambos casos,
el resultado final es una fotografa del estado de las perforaciones existentes en la ficha en
la que a cada perforacin le corresponde un bit 1, ya las posiciones sin perforacin, un bit 0.
Supongamos que cada columna de la ficha se fotografe en 2 bytes que constituyen
una palabra de ordenador. En este caso, el contenido de la ficha despus de la lectura
consta de 80 palabras, carcter a carcter. A esta zona de memoria del ordenador la
llamamos buffer de lectura.
Los datos contenidos en el buffer solo pueden utilizarse si previamente han sido
interpretados segn las directrices del programa. Para cada ficha, antes de la perforacin,
se establece el trazado, es decir, se determina cuantos caracteres son necesarios para cada
dato y en qu columna de la ficha tienen que perforarse. Por otro lado, el programa tiene
que saber, por medio de las convenciones del lenguaje utilizado, las caractersticas de los
datos que residen en el buffer. Por lo tanto, puede ocuparse de reagrupar los caracteres que
pertenecen a cada dato, realizar eventuales transformaciones de cdigo y transferir esos
datos desde el buffer a las zonas de memoria dedicadas a ellos.
La lectura de la ficha perforada es, en realidad, bastante complicada; de hecho,
mientras la ficha se desliza a velocidad constante bajo la estacin de lectura, el ordenador
tiene que leerla columna a columna (o fila a fila) con la temporizacin exacta, para no
sobreponer las informaciones.
Si el ordenador utiliza las fichas en los dispositivos de salida, deber conectarse a una
unidad perforadora de fichas. En tal caso, los datos que se perforarn sobre una ficha
tendrn que prepararse en un buffer de escritura, carcter a carcter, para luego ser
transferidos a la ficha por medio de punzones dirigidos elctricamente.
Hemos mencionado la mquina selectora de fichas. Junto a sta podamos encontrar
otra mquina, denominada intercaladora, que serva para agrupar, en una nica secuencia,
dos paquetes de fichas ya ordenadas. Hoy en da tambin se prefiere realizar este trabajo
con dispositivos magnticos por medio de un programa de ordenador (programas de
agrupacin).
Pasemos ahora a examinar los perifricos de banda perforada. Constan de una cinta
de papel resistente de color opaco, que contiene en toda su longitud una secuencia de

321

pequeos agujeros para su arrastre. Se trata, bien de lectoras, bien de perforadoras, o de


lectoras/perforadoras. En stas tenemos una estacin de lectura y/o perforacin, donde la
lectura puede realizarse de igual manera que para las fichas perforadas, es decir, de
manera electromecnica o fotoelctrica, y la perforacin, mediante punzones accionados
elctricamente. Adems, existe un dispositivo para el arrastre de la cinta, el cual
normalmente se controla mediante programa. Algunos dispositivos de lectura permiten leer
la banda por bloques (como sucede en las cintas magnticas), mientras que otros slo
permiten la lectura a gran velocidad de toda la banda disponible. Es evidente que en el
primer caso se pueden introducir datos procesables por el ordenador en forma de bloques,
mientras que en el segundo slo puede llenarse una parte de la memoria. Algunos
ordenadores contienen una lectora de banda perforada para cargar en memoria el programa
inicial de comienzo y/o parte del sistema operativo.
De todas formas, si un ordenador utiliza perifricos de banda perforada. Generalmente
dispone tambin de un dispositivo manual para la perforacin de la banda.
El cdigo de perforacin puede realizarse utilizando un determinado nmero de bits,
generalmente 7 u 8, y las perforaciones se realizan perpendicularmente a la directriz de
arrastre a lo largo de los canales. Los datos se perforan carcter a carcter utilizando
siempre un bit para el control de paridad. En la figura 1 se representa una banda con 8
canales, donde el canal 8 se utiliza para el control de paridad y los canales del 1 al 7 para el
cdigo.
Tambin para la banda de papel son vlidas las mismas observaciones hechas para las
fichas. Los datos se reciben carcter a carcter en un buffer de lectura, o son preparados en
un buffer de escritura. El programa se encarga de todas las transformaciones de cdigo
necesarias para poder trabajar con los datos. En el caso de que se carguen programas de
lenguaje de mquina mediante banda perforada, cada carcter grabado puede representar
el contenido binario de un byte, y es suficiente transferirlo a la memoria a partir de la
posicin deseada.

Fig. 1. Banda de papel perforada de 8 canales.

322

DISPOSITIVOS DE SOPORTE MAGNTICO


De estos dispositivos ya hemos hablado en el captulo anterior.
Estn constituidos por dispositivos de cintas magnticas, por discos magnticos rgidos
o flexibles y por tambores.
Genricamente se denominan dispositivos de memoria masiva, pero son en todo caso
dispositivos de entrada/salida (I/O).

IMPRESORAS
Las impresoras son los perifricos que ms se utilizan para la salida de datos del
ordenador, de manera inteligible para el hombre.
Estas se encargan de imprimir los resultados de los procesos sobre folios o sobre
mdulos de papel continuo.
En el primer caso, es posible, mediante carretes apropiados, introducir el folio, que
despus la impresora tratar como lo hace una mquina de escribir corriente. Por el
contrario, los mdulos de papel continuo estn doblados en forma de acorden y son fciles
de separar. Estn dotados de dos cintas laterales perforadas que permiten enganchar el
papel al mecanismo de arrastre. Algunas impresoras permiten utilizar, por medio de carros
superpuestos, un mdulo de papel continuo y hojas sueltas de insercin frontal.
Mediante un interruptor especial se puede elegir el espaciado entre las lneas, que
normalmente es de 1/6 1/8 de pulgada. El nmero de caracteres que se pueden imprimir
en una lnea vara, dependiendo de la impresora utilizada: las medidas habituales son de
32, 80, 120, 132 160 caracteres por lnea. Para controlar el nmero de lneas que se
pueden imprimir en una hoja existen diferentes posibilidades, dependiendo del tipo de
impresora. En algunas existe una tecla de reset (recomponer), que puede accionarse
despus de haber colocado la hoja. El sistema cuenta las lneas impresas ( el nmero de
lneas por pgina puede ser fijo o modificable por software: el ms comn es de 66 lneas
por pgina) y accede automticamente a una hoja nueva, dejando el margen necesario. Si
se desea cambiar de hoja en base a unas reglas ms complicadas, se puede utilizar en el
programa un contador de lneas y mandar el avance del papel con una orden de impresin
en vaco.
Ms flexible es el sistema de avance del papel, basado en la utilizacin de una cinta de
papel perforada, cerrada en crculo y ubicada en la impresora.
El principio de funcionamiento es el siguiente: se corta la cinta de papel de manera
que sea tan larga como las hojas utilizadas, y se encola en forma de crculo. El dispositivo
de arrastre de la cinta acta, por lo tanto, conjuntamente con el movimiento del papel en la
impresora.
La cinta de papel ofrece, adems de una pista de perforaciones para el arrastre, la
posibilidad de realizar perforaciones en diferentes posiciones sobre los 12 canales o pistas.
Es posible dirigir por programa el avance del papel en base a las perforaciones existentes en
los diferentes canales de la cinta, as como el formato de la lnea de impresora (ver figura
2). Los lenguajes simblicos de alto nivel constan de una serie de instrucciones que facilitan
la impresin de los resultados con el formato y paginacin deseados. Considerando la forma
en la que se imprimen los caracteres, las impresoras pueden dividirse en dos grupos: por
impacto y sin impacto.

323

Fig. 2. Cinta de control para el desplazamiento del papel.


Al primer grupo pertenecen las impresoras que imprimen el carcter sobre el papel
por contacto mecnico por medio de una cinta entintada. Pertenecen al segundo grupo las
mquinas en las cuales la impresin se realiza por medio de sistemas qumicos, magnticos
o elctricos.
Adems, un carcter puede imprimirse con una imagen continua o en base a puntos.
El primer sistema, muy parecido al utilizado en las teclas de una mquina de escribir,
consta de un dispositivo con la forma del carcter en relieve, que golpea una cinta
posicionada entre el papel y el dispositivo. Por el contrario, el segundo sistema consta de
una matriz de agujas (matriz 7 x 5, 9 x 7, 7 x 7, 8 x 8 u otras) , que forma cada vez el
carcter deseado activando algunas agujas.
Hay que considerar otra subdivisin entre los tipos de impresoras disponibles:
impresoras en serie e impresoras en paralelo. Las impresoras en serie producen la lnea
impresa carcter a carcter. Existen tambin las monodireccionales, que imprimen slo de
izquierda a derecha y en las cuales el retroceso del carro se hace sin imprimir: y las
bidireccionales, que imprimen tanto de izquierda a derecha como de derecha a izquierda.
Las impresoras en paralelo imprimen todos los caracteres de una lnea a la vez o de
tal manera que parece que la impresin se realiza simultneamente en todas las posiciones.
Ahora que conocemos los parmetros en base a los que estn subdivididas las
impresoras, pasaremos a hablar de los tipos ms importantes.
En las impresoras de cadena, que son del tipo en paralelo, el dispositivo de impresin
est formado por una cadena metlica cerrada en forma de anillo, que gira a velocidad
constante en paralelo a la lnea de impresin. En la parte superior lleva todo el grupo de
caracteres disponibles, que estn repetidos un cierto nmero de veces. La cinta est situada
entre la cadena y el papel. Detrs de sta hay una serie de pequeos martillos, tantos
cuantos son los caracteres que se pueden imprimir en una lnea. Cuando el programa pide
la impresin de un determinado carcter en una determinada posicin, hay que esperar a
que la cadena tenga disponible dicho carcter en la posicin deseada para poder activar el
martillo correspondiente. En la figura 3 se representa un esquema del dispositivo de
impresin con cadena.

324

Fig. 3. Esquema de un dispositivo de impresin con cadena.


Con impresoras de esta clase se obtienen velocidades comprendidas entre 600 y
3.000 lneas por minuto. Son bastante caras.
En las impresoras de cilindro, figura 4, que tambin son del tipo en paralelo, el grupo
de caracteres est situado en una serie de canales circulares sobre la superficie de un
cilindro metlico, que gira a velocidad constante. A lo largo de una directriz del cilindro se
encuentra el mismo carcter, por lo que, a cada instante, est disponible en
correspondencia con las diferentes posiciones de impresin. El funcionamiento es similar al
que vimos anteriormente. La nica diferencia reside en que la lnea se escribe en tiempos
sucesivos, imprimiendo en el mismo instante todos los caracteres iguales tan rpidamente,
que parece que todos los caracteres de una lnea se imprimen simultneamente.

Fig. 4. Dispositivo de impresin de cilindro.


Otra clase de impresora del tipo paralelo de impacto es la de barras o de ruedas. En
este caso, los caracteres estn dispuestos, ya sea sobre barras metlicas que se levantan o
se bajan dejando el carcter deseado disponible a la altura de la lnea, o bien sobre ruedas
giratorias. En la figura 5 se representa el esquema de un dispositivo de impresin de una
impresora en serie con cabezal cilndrico.

325

Fig. 5. Esquema del dispositivo de impresin de bola. Tambin se puede


disponer de cabezas de escritura con forma diferente: cilndrica, de rueda o de
margarita.
Las impresoras de margarita, figura 6, tienen los caracteres en relieve dispuestos en
crculo y formando, como su nombre indica, una margarita.

Foto. Impresora lser para la impresin de textos, nmeros e imgenes sobre papel a la
velocidad de 12 originales (formato A-4) por minuto. (foto cedida por Rank Xerox)

Fig. 6. Cabezal de margarita (Foto cedida por Olivetti)

326

Son impresoras en serie y a impacto ms bien lentas (30 cps -caracteres por
segundo-) y caras, pero tienen una ptima calidad de impresin, figura 7.

Fig. 7. La margarita en funcionamiento.


Se obtienen velocidades mayores, incluso del orden de los 200 cps, con impresoras en
serie, de impacto y de agujas. En la figura 8 se representa un esquema para una matriz de
7 x 7. En este caso, la cabeza de impresin tiene las dimensiones de una columna de la
matriz y se mueve a lo largo de la lnea de impresin a velocidad constante.
Correspondindose a cada carcter, se activan las agujas necesarias tantas veces como
haga falta (en el ejemplo, 7 veces las 7 agujas de una columna) y el carcter se crea por
puntos y por impacto. En la figura 9 se pueden observar las diferentes fases de realizacin
de la letra A por medio de una impresora de agujas.

Fig. 8. Esquema del dispositivo de impresin en serie por punto.

327

Fig. 9. Diferentes fases en la formacin de la letra "A" con una impresora de aguja.
En la impresora de agujas de funcionamiento en paralelo, con una pulsacin se
sealan todos los puntos de todos los caracteres relativos a una lnea de la matriz. Por lo
tanto, se efectan tantas pulsaciones como lneas tenga la matriz, y se alcanzan velocidades
del orden de 2.000 lneas por minuto. Sin embargo, estas impresoras son muy caras.
Para grandes sistemas existen impresoras superrpidas. Citemos las impresoras de
chorro de tinta (ink-jet), que pueden alcanzar velocidades de 40.000 lneas por minuto.
Esquemticamente, su funcionamiento es el siguiente (ver figura 10 ). El cabezal de
escritura, constituido por un depsito con un dosificador, se mueve uniformemente a lo
largo de toda la hoja. En la posicin en la que se tiene que escribir, dosifica la tinta, la cual,
despus de ser electrizada, gota a gota, ser conducida a travs de un campo elctrico
sobre el papel para formar el carcter deseado, al igual que suceda con la impresora de
matriz.

Fig. 10. Impresora de chorro de tinta.


La impresora lser consta de un cilindro recubierto de selenio (material aislante en la
oscuridad y conductor a la luz), con rotacin constante y uniforme, en cuya superficie incide
un rayo lser; desviado por un espejo, a lo largo de todo el proceso de impresin (ver

328

figura 11).

Fig. 11. Impresora de rayo lser.


Slo los puntos de selenio iluminados retienen electrostticamente el polvo de tinta
seca (toner) depositada en una determinada franja del cilindro. Despus, por medio de
compresin y calentamiento se imprime el carcter deseado sobre el papel como un
conjunto de puntos. Alcanzan velocidades de 20.000 lneas por minuto.
Entre la gama de impresoras sin impacto y de bajo costo, citamos las impresoras
trmicas. El elemento de impresin, ver figura 12, por puntos o por segmentos, imprime
en caliente sobre papel especial el carcter deseado. No se consigue una buena nitidez de
impresin. Son bastante silenciosas, aunque lentas.

Fig. 12. Impresora trmica de matriz de puntos.


Despus de haber hablado de las principales clases de impresoras, volvamos a las
consideraciones de carcter general.
Los datos que se tienen que imprimir, codificados segn el dispositivo utilizado, deben
ser almacenados en un buffer (de impresin), que normalmente tiene la capacidad
suficiente para contener una lnea.
Es evidente que, si disponemos de una impresora de carcter entero, slo se puede
obtener la impresin del conjunto (set) de caracteres disponibles en la mquina. Por el

329

contrario, si utilizamos una impresora de matriz por puntos, siempre que el sistema lo
permita ser posible obtener, mediante software, diseos especiales, es decir, disear
caracteres particulares.
Tomemos la matriz 8 x 8. Esta tiene una imagen en memoria de 8 bytes consecutivos,
en los que: los bits 1 corresponden a los puntos que se tienen que imprimir.
Mediante una adecuada configuracin de los 1 se puede imprimir, por ejemplo, la letra
n (ver figura 13).

Fig. 13. Correspondencia entre puntos de impresin y el contenido de


los 8 bytes.

PLOTTER
Toman el nombre de plotters aquellas unidades de impresin, no muy rpidas, que
permiten dibujar grficos (ver figura 14).

Fig. 14. Ejemplo de un plotter; arriba a la izquierda, detalle de plumas de 4 colores. (Foto
cedida por Calcomp.)
En algunos, el papel, generalmente enrollado, puede desplazarse verticalmente en los
dos sentidos, enrollndose o desenrollndose.
Por el contrario, el desplazamiento horizontal es tarea de la pluma (o plumas) de
escritura, que puede escribir o elevarse para permitir el desplazamiento sin escribir.

330

Tambin existen plotters en los que la hoja de papel, situada horizontalmente, queda
inmvil y el dibujo se realiza con el solo movimiento de la pluma. El programa es el que
dirige todos estos desplazamientos y permite trazar grficos muy complejos con tanta
mayor precisin cuanto menor sea el incremento de coordenadas (es decir, el ms pequeo
desplazamiento horizontal o vertical que puede realizar).
Algunos ordenadores realizan la impresin de grficos de forma distinta. De hecho,
stos pueden copiar sobre el papel cualquier imagen que aparezca en la pantalla. Por lo
tanto, se dice que tienen el dispositivo de hard copy: es decir, se trata de una imagen de
puntos que se reproduce lnea a lnea mediante una impresora corriente de matriz por
puntos.

LA PANTALLA
Hemos mencionado la pantalla como una unidad de salida (output) muy difundida y a
menudo utilizada en estrecha unin con el teclado de entrada (input), que domina
totalmente el campo de ordenadores personales. Consiste en una pantalla en blanco y
negro o de dos o ms colores (de 8 a 16), muy parecida a la de un televisor corriente. Su
dimensin habitual es de 12 pulgadas (ver figura 15).

Fig. 15. Conjunto (set) de colores de un apantalla segn los componentes de


luminosidad: color y saturacin. (Foto cedida por Tektronix.)
El nmero de caracteres que se pueden visualizar depende del tipo de ordenador.
Normalmente de 20 a 80 caracteres por lnea y de 20 a 24 lneas. Dichos caracteres o
pertenecen al conjunto (set) disponible o, en muchos casos, pueden ser diseados por
puntos por el mismo programador. Generalmente, la pantalla est dotada de posibilidad de
giro de la visualizacin (scrolling); es decir, cuando la pantalla est llena, es posible
continuar escribiendo eliminando las lneas superiores para dejar sitio a las nuevas. En
algunos sistemas se consigue incluso obtener un giro de visualizacin (scrolling) hacia
abajo, pudiendo de esta forma insertar nuevas lneas en la parte superior.
Generalmente, el rea de pantalla est representada en la memoria, es decir, en sta
existe una zona denominada buffer, que consta de tantos bytes como caracteres pueden
aparecer en la pantalla, resultando ser as una imagen de ella. Por ejemplo, en una pantalla
de 24 lneas, de 80 caracteres cada una, disponemos de 1.920 bytes. En la pantalla de color
tambin existen buffers dedicados a los cdigos de colores de los diferentes puntos de la
pantalla.
En otra zona dc memoria se conservan las imgenes de todo carcter visualizable
331

(letra, nmero u otros) bajo la forma de tabla de bytes, una para cada carcter. El
microprocesador, que se encarga de la pantalla, utiliza el buffer para obtener una relacin
de las tablas que representan los distintos caracteres. Por lo tanto, se puede decir que el
buffer contiene los punteros de las imgenes de los caracteres.
Es evidente que la posibilidad de accionar sobre los punteros para la bsqueda de los
caracteres en tablas diferentes a la estndar del sistema aumenta notablemente las
posibilidades grficas de la pantalla.
La pantalla puede ser utilizada tambin como unidad de entrada por medio de un lpiz
ptico o lpiz luminoso (light-pen), que sirve para indicar una posicin de la pantalla. La
posicin viene determinada durante el continuo barrido de la pantalla por medio del rayo
luminoso.
Se recomienda la utilizacin del lpiz particularmente en operaciones de seleccin,
pero siempre con el debido cuidado y habilidad, ya que su posicionamiento tiene efecto
inmediato.
Para facilitar la gestin de la pantalla se utiliza un indicador luminoso (generalmente
intermitente), llamado cursor, que en todo momento se encuentra en la posicin
actualmente disponible y que puede ser movido utilizando las teclas de desplazamiento del
cursor.

TERMINALES
Se llaman terminales aquellos dispositivos que permiten la comunicacin directa (sin
utilizar soportes intermedios) con el ordenador por medio de un teclado alfanumrico
parecido al de una mquina de escribir (ver figura 16). Existen diferentes tipos de
terminales; hablaremos de los terminales de pantalla y de los de escritura. La diferencia
entre los dos grupos depende de la manera en la que se visualizan los datos introducidos
por el teclado, por pantalla o sobre el papel.

Fig. 16. Terminal constituido por un teclado alfanumrico y una impresora o una
pantalla, la pantalla utiliza la nueva tcnica de ventanillas mltiples.
Podemos imaginar un teclado de n x m teclas como una matriz de n lneas por m
columnas, en la que la pulsacin de una tecla provoca un contacto en el cruce de una lnea

332

con una columna. Las lneas de la matriz son lneas de salida de la CPU y las columnas son
lneas de entrada.
La CPU enva tensin (estado lgico 1) a las diferentes lneas de la matriz, una por
una, cclicamente, miles de veces por segundo.
El pulsar una tecla equivale a cortocircuitar una lnea con una columna y, por lo tanto,
a obtener un 1 tambin en la columna, lo que indica que al menos una tecla ha sido
pulsada. Con el barrido sistemtico de las lneas y columnas para averiguar dnde aparece
un 1, se obtiene la identificacin exacta de la tecla pulsada. Esta operacin, junto con la
deteccin de la tecla pulsada, se efecta mediante programa con adecuadas instrucciones
de entrada y salida, que escriben sobre las lneas y leen las columnas.
Cuando se pulsan dos o ms teclas a la vez (rollover), se da una situacin anmala.
Para remediarlo se lleva a cabo el barrido de todo el teclado, tambin despus de
determinar que una tecla ha sido pulsada. En el caso de que se determinen nuevas
pulsaciones, generalmente son ignoradas.
Otro problema ligado a la gestin del teclado es el rebote. Por rebote se entiende el
fenmeno segn el cual, la pulsacin de una tecla provoca el cierre efectivo y definitivo del
contacto con un cierto retraso, del orden de los 15/20 ms, despus de un determinado
nmero de oscilaciones. Lo mismo sucede cuando dejamos que la tecla vuelva a su posicin
inicial.
Por tanto, es necesario evitar que la operacin de determinar el estado de la tecla, en
una situacin transitoria, interprete de manera errnea una oscilacin. Se procede,
entonces, bien con una tcnica hardware, por medio de filtros RC, bien por software,
introduciendo rutinas de retardo en los programas de gestin del teclado y volviendo a leer
el estado de la tecla despus de haber transcurrido un cierto tiempo desde la primera
determinacin, para confirmar o no la lectura anterior.
Algunos teclados estn dotados de un buffer en el que se pueden conservar algunos
de los caracteres pulsados, a la espera de visualizarlos en la posicin inmediatamente
disponible en la salida, bien sobre papel, bien en pantalla.
Esta operacin es tarea del sistema, aunque se puede omitir.
El terminal de pantalla es muy utilizado y cmodo. Es posible efectuar una entrada
muy sofisticada de datos, utilizando las posibilidades de desplazamiento del cursor.
Hasta ahora se ha hablado de terminales no inteligentes, es decir, de dispositivos
utilizados slo para entrada y salida. Existe tambin una categora de terminales
inteligentes, es decir, programables sin dependencia alguna del ordenador al que estn
conectados. En realidad, se trata de pequeos ordenadores que pueden funcionar de
manera autnoma.
Finalmente, refirindonos al tipo de conexin, los terminales se clasifican en remotos y
no remotos. Se consideran remotos aquellos terminales para los que no es posible una
conexin directa, por medio de cables, al ordenador central.

Ejemplo de nuevas tcnicas de pantalla, grficas y tridimensionales.

333

PROCESOS DE COMUNICACIN PARA LA TRANSMISIN DE DATOS A


DISTANCIA
En este caso, la transmisin de los datos a distancia (un determinado nmero de bits
transmitidos en serie, es decir, sobre una nica lnea uno tras otro) se efecta
generalmente por medio de lneas telegrficas, telefnicas o a travs de enlaces por radio.
Tanto en la estacin transmisora como en la receptora, tienen que estar presentes el
hardware y el software necesarios para la transmisin: es decir, los procesos de
comunicacin (protocolo de transmisin), que permiten la comprensin entre las dos
estaciones. Por ejemplo, la seal por una parte y el reconocimiento del principio de un
mensaje, por otra.
La transmisin puede ser sncrona o asncrona.
En el primer caso, despus de un intercambio de informaciones que permiten la
sincronizacin entre los dos dispositivos, se realiza la transmisin en bloque del conjunto de
caracteres que constituyen el mensaje.
Esta termina con la transmisin de un carcter de fin de bloque, por parte del emisor,
y con una seal de confirmacin de llegada, por parte del receptor.
Por el contrario, en la transmisin asncrona, cada carcter va precedido y seguido por
un cierto nmero de bits que determinan su principio y su fin. En general, la transmisin
sncrona se utiliza en lneas de velocidad media o alta, y la transmisin asncrona, en lneas
de baja velocidad.
La velocidad se mide en baudios (1 baudio = 1 bit por segundo).

OTROS PERIFRICOS
Mencionaremos, brevemente, otros tipos de perifricos.
Para evitar que los datos pasen por soportes intermedios, como fichas o bandas
perforadas, se han desarrollado dispositivos de entrada basados en la lectura magntica u
ptica. En este caso, los documentos originales sirven como entrada al ordenador y el
dispositivo de lectura tiene que identificar directamente los smbolos utilizados por el
hombre. En el sistema de lectura magntica (MICR = Magnetic lnk Character Recognition),
los caracteres deben escribirse en forma estndar, utilizando tinta magntica, y deben
situarse en posiciones del documento previamente determinadas. Por el contrario, en la
lectura ptica ( OCR = Optical Character Recognition), el documento se escribe con tinta
normal y la determinacin del carcter slo se basa en su forma.
El joystick (palanca direccional) es una palanca que puede desplazarse muy
rpidamente hacia adelante, hacia atrs, a la derecha y a la izquierda, produciendo el
correspondiente desplazamiento de un punto en la pantalla. Existen palancas direccionales
(joysticks) con posiciones fijas y otras en las que el movimiento puede ser continuo. Son
muy utilizadas en los videojuegos, as como los paddles, que estn formados por un mando
con un botn que permite el desplazamiento continuo del cursor.
El tablero digitalizador (tablero digital) permite escribir o dibujar con un bolgrafo
especial, reproducindose el mismo dibujo en la pantalla (ver figura 17). El dibujo
producido puede ser visualizado en la pantalla o memorizado en otro dispositivo.

334

Fig. 17. Detalle de un puesto de trabajo de un


sistema grfico donde resalta el lpiz. (Foto cedida
por Calcomp.)
Existen dispositivos, an no muy utilizados y con limitado vocabulario, para la entrada
oral de datos al ordenador.
Anlogamente, existen dispositivos con salida oral de datos desde el ordenador.

TCNICAS DE ENTRADA/SALIDA (INPUT/OUTPUT)


Despus de haber hablado de los dispositivos I/O (entrada/salida) ms comunes que
se pueden conectar a un ordenador, vamos a hablar ahora de las tcnicas principales
utilizadas en las transferencias de datos desde el ordenador a los perifricos, y viceversa,
haciendo referencia a los modernos sistemas de microprocesadores.
Generalmente, para conectar un perifrico al ordenador es necesario una interfase que
realice las transferencias en serie o en paralelo, o que disponga de la conversin de datos
serie/paralelo, y viceversa.
El perifrico, en el caso de dispositivos con partes mecnicas complejas, consta de un
controlador del dispositivo (controller) que, como su nombre indica, realiza todas las
funciones de control necesarias para el correcto funcionamiento del dispositivo. Por ejemplo,
el controlador de una unidad de floppy-disk (diskette) debe realizar, por lo menos, las
funciones siguientes:
Lectura
1. Cargar el registro
2. Generar una bsqueda
3. Esperar para el correcto posicionamiento
4. Transferencia de los datos bajo control de interrupcin
5. Verificar que la operacin se realice correctamente
Escritura
1. Cargar el registro
2. Generar una bsqueda
3. Esperar para el correcto posicionamiento
4. Mandar una orden de escritura
5. Cargar los datos despus de que haya recibido una seal de demanda
6. Verificar los indicadores de estado ocupado y el carcter de control de
bloque (CRC).

335

Por el contrario, el controlador de pantalla tiene que encargarse de buscar en la tabla


de caracteres la matriz de puntos necesaria para evidenciar cada carcter que se encuentra
en la zona de pantalla, encargarse del cursor y del desplazamiento de lneas.
Dado que en un sistema estn conectados muchos perifricos, es necesario establecer
un proceso de comunicacin o tcnica de I/O, que haga posible que cada uno de ellos
trabaje. Podemos esquematizar tres procesos: polling (interrogatorio de trfico), las
interrupciones (interrupt) y el DMA (Direct Memory Access o Acceso Directo a Memoria)
esquematizados en la figura 18.

Fig. 18. Las tres tcnicas de I / O (Input / Output - Entrada / Salida.)

Polling (interrogatorio de trfico)


El primer mtodo, I/O programado o polling, es el ms simple. Se trata de una tcnica
sncrona en la que el ordenador interroga cclicamente a los perifricos que estn
conectados por medio del bus de datos, el bus de direcciones y algunas lneas del bus de
control, para saber si solicitan alguna tarea.
En la interfase de conexin de cada dispositivo se encuentra un indicador (flag), al que
se le pregunta acerca de la disponibilidad de los dispositivos.
Se trata de un ciclo repetitivo realizado por software por medio de un algoritmo
adecuado. En la figura 19 se esquematiza la secuencia de polling.

336

Fig. 19. Ciclo de polling (interrogatorio de trfico).


El proceso de pregunta y respuesta entre el ordenador y el perifrico toma el nombre
de protocolo (handshaking). Generalmente, este trmino indica una clase de comunicacin
entre los dos dispositivos, en los que a la transferencia de datos se le aaden seales
adecuadas denominadas handshake (permiso de trfico), que comunican la peticin de un
dato por parte de un dispositivo, la disponibilidad del dato por parte del otro y finalmente su
recepcin por parte del primero.
Se trata de una comunicacin real que representa ya sea una entrada, o una salida de
datos para el ordenador. Si el dispositivo est listo para transmitir un dato, el ordenador,
antes de leerlo del registro del perifrico, tiene que cerciorarse de que est actualizado,
analizando un bit especial del registro de estado del perifrico. Anlogamente, si el
ordenador transmite un dato al perifrico tiene que verificar que est listo para recibirlo, y
ms tarde controlar que haya recibido dicho dato antes de realizar cualquier otro proceso.
Veamos las ventajas y desventajas de esta tcnica. Comencemos por estas ltimas. El ciclo
de polling puede resultar lento, porque si un perifrico solicita una tarea inmediatamente
despus de haber sido interrogado tiene que esperar a que sean interrogados y,
eventualmente, se les asigne tareas a todos los dems perifricos, lo que provoca un
retraso intolerable en aplicaciones delicadas.
Por otra parte, el polling es una tcnica de comunicacin software, ya que
prcticamente no necesita hardware: de hecho, el proceso de recepcin y transmisin se
realiza bajo el control del programa.

337

Interrupciones (interrupts)
Por el contrario, la tcnica que aprovecha las interrupciones es mixta: software +
hardware adicional, que permite una mayor velocidad para atender a las peticiones.
Refirindonos al esquema de la figura 20, vemos que el perifrico solicita servicios al
ordenador por medio de una seal enviada en la lnea de interrupciones.

Fig. 20. Tcnica de interrupciones (interrups).


El ordenador reconoce la peticin (2 en la figura), suspende el programa en ejecucin,
atiende al perifrico (3 en la figura), y vuelve al programa que se haba interrumpido.
Veamos ms detalladamente cmo se realizan estas operaciones. Cuando la CPU
recibe una interrupcin, salva el estado actual del programa en ejecucin, grabando en una
determinada zona de memoria la informacin necesaria para poder continuar, atendida la
interrupcin, con la correcta ejecucin del programa: dicha informacin es el contenido del
CP (contador de programa), o sea, la direccin de la instruccin con la que se tiene que
continuar la ejecucin del programa y el contenido del registro de estado, si ste existe.
Despus de esta operacin, que toma el nombre de salva, se le asigna una determinada
rutina al perifrico que pidi la interrupcin. Una vez concluida la ejecucin de la rutina de
servicio, el control vuelve al programa interrumpido. Previamente se realiza una operacin
para restablecer las condiciones que se grabaron en memoria en el momento de la
interrupcin.
Con esta descripcin es fcil entender que se trata de una gestin asncrona, o sea, no
controlada por programa. La gestin de entrada/salida (I/O) de este tipo es ms
complicada, ya que no se puede prever el momento en el que sern transmitidos los datos.
Adems, cuando hay ms de un dispositivo conectado, es necesario asignar
prioridades de servicio para el caso de peticiones simultneas. Esto se realiza agrupando
todos los dispositivos segn niveles de prioridad.
Es necesario saber que la asignacin de los niveles de prioridad para los perifricos se
determina en la fase de implantacin y que una mala eleccin puede crear graves
problemas. La situacin ideal se logra conectando un nico perifrico a cada nivel de
prioridad. En este caso, las peticiones simultneas se ponen en cola y son atendidas segn
su prioridad. Por el contrario, si ms de un dispositivo se asocia a un mismo nivel de
prioridad, cuando la CPU recibe una interrupcin tiene que poder determinar cul es el
perifrico que la provoc, bien por software, bien por hardware.
Esta tcnica, aun siendo muy rpida gracias al programa, necesita un hardware
complicado y una programacin difcil.

338

Transferencia DMA
Para realizar la transferencia DMA es necesario disponer de un procesador capaz de
efectuarla. Se trata de una tcnica hardware que utiliza un dispositivo particular para
efectuar la transferencia de bloques de datos desde y para la memoria del ordenador, sin
interrumpir el programa en ejecucin.
Cuando existe una transferencia DMA, la CPU interviene slo en el momento de lanzar
la operacin y despus la transferencia sigue su proceso de manera autnoma por medio de
hardware. Naturalmente, tambin intervienen el bus de datos y el bus de direcciones. Las
operaciones de la CPU slo se interrumpen momentneamente para liberar estos buses y
poder efectuar la transferencia en DMA. La seal de parada enviada al procesador central se
denomina hold, y la contestacin desde la CPU, ack (acknowledgement: reconocimiento).
Prcticamente, la gestin de las interrupciones (interrupts), que en la tcnica anterior las
realizaba el procesador central, ahora estn a cargo, con el DMA, de un dispositivo
particular denominado, precisamente, DMA. En el esquema de la figura 21 se puede ver su
funcionamiento.

Fig. 21. Esquema de un DMA.


El DMA permite que el programa se ejecute utilizando el modo asncrono con respecto
a la transferencia de los datos. Al final de la trasmisin, el procesador central es avisado por
medio de una interrupcin. Se trata de dispositivos caros y se usan cuando se necesita una
transferencia rpida como en los discos, en las cintas o en las pantallas.
No es nunca tarea fcil realizar la programacin necesaria para efectuar las
entradas/salidas de un ordenador. Por eso siempre existen programas estndar
proporcionados por las casas constructoras junto con el ordenador, para gestionar los
perifricos. El conjunto de estos programas toma el nombre de sistema de control para la
I/O, conocido como IOCS (Input/output Control System).

339

GLOSARIO
Soporte de papel en forma de cinta en la que se representan
los datos, carcter a carcter, por medio de adecuadas
combinaciones de perforaciones.
Registro o conjunto de registros de un perifrico en el que
transitan los datos de entrada y salida. Tambin zona de
Buffer de I/O
memoria del ordenador utilizada para realizar las
operaciones de I/O.
Cdigo
Es el cdigo que se utiliza para representar los caracteres en
Hollerith
una ficha con las adecuadas combinaciones de perforaciones.
Indicador luminoso intermitente que se encuentra, a cada
Cursor
instante, en la posicin disponible de la pantalla.
Tcnica hardware de I/O, gestionada por un dispositivo
DMA (Direct
denominado DMA. Se utiliza para transferencias rpidas de
Memory
grandes cantidades de datos entre un perifrico y la
Accessmemoria central. No necesita el control de la CPU, sino slo
Acceso Directo una cortsima suspensin de su actividad para dejar
a Memoria)
disponibles los buses en los que se realiza la transferencia de
datos.
Soporte de papel para el registro de los datos de entrada y
Ficha
perforada salida del ordenador. Cada carcter se puede
perforada
identificar a travs de una determinada configuracin de
perforaciones en posiciones adecuadas.
Tcnica de impresin en la que los caracteres se imprimen
Impresin con
sobre el papel por medio del contacto mecnico entre la hoja
impacto
y el dispositivo de impresin utilizando una cinta entintada.
Tcnica de impresin, que utiliza procesos qumicos,
Impresin sin
magnticos o elctricos, en la que no existe el contacto entre
impacto
el papel y el dispositivo de impresin.
Dispositivo de salida que proporciona los resultados de los
Impresora
procesos, impresos sobre hojas de papel, de manera
inteligible por el hombre.
Impresoras en Imprimen simultneamente (o casi) todos los caracteres de
paralelo
una lnea en diferentes posiciones.
Impresoras en
Imprimen, uno tras otro, los caracteres de una lnea.
serie
Desde el punto de vista de hardware, es el conjunto de
dispositivos que permiten la conexin entre ellos de dos o
Interfase
ms componentes de un sistema; con referencia al software,
es el conjunto de programas que gestionan tales
dispositivos.
Interrupciones Tcnica de I/O mixta hardware + software en la que la
(interrupts)
transferencia de un dato se realiza por la peticin de un
perifrico que interrumpe el proceso del programa en
ejecucin. En los problemas relativos a la identificacin del
perifrico que demanda tareas y en la definicin de prioridad
Banda
perforada

340

para peticiones simultneas, es necesario hardware


adicional. El servicio de las demandas tiene carcter
software y se realiza por medio de rutinas denominadas de
servicio.
IOCS
(Input/Output
Control
System)
Joystick
(palanca
direccional)
Lectora de
fichas
Perforadora de
fichas

Conjunto de programas estndar generalmente


proporcionados por las casas constructoras para la gestin
de las operaciones de entrada y salida.
Es una palanca direccional que puede moverse manualmente
para dirigir el movimiento de un punto en la pantalla.

Dispositivo de entrada por medio del cual se introducen en el


ordenador los programas y los datos sobre fichas perforadas.
Dispositivo de salida conectado al ordenador. Los resultados
de los procesos se obtienen bajo forma de fichas perforadas.
Dispositivo de salida que, aprovechando el desplazamiento
Plotter
vertical de la hoja de papel y el desplazamiento horizontal de
una pluma, realiza la impresin de grficos y dibujos.
Tcnica software de I/O, en la que la transferencia de datos
Polling
se realiza bajo el control de un programa que interroga
(Interrogatorio cclicamente a los perifricos. La transferencia se realiza slo
de trfico)
si el perifrico que lo demanda es interrogado por el
programa.
Registro interno de un dispositivo (unidad central o
perifrico) que proporciona, por medio del estado de sus
Registro de
bits, la informacin acerca del estado del dispositivo. Por ej.
estado
la peticin de un dato, disponibilidad de un dato, el buffer de
I/O ocupado, etc.
Modalidad de comunicacin y transferencia de datos entre
Tcnicas de
los perifricos y la unidad central, con referencia tanto al
I/O
aspecto hardware como al software.
Dispositivo de I/O formado por un teclado alfanumrico por
el que se introducen los datos y los programas en el
Terminal
ordenador sin pasar a travs de soportes intermedios, o por
una impresora o por una pantalla.

341

CONCLUSIN

342

CONCLUSIN FINAL

343

BIBLIOGRAFA
UNLaR - Procesamiento de Datos I Ciclo 2003
Pagina 1
http://unlar.estudio3.com.ar

BIBLIOGRAFIA
CARRERA: LICENCIATURA EN ANALISIS DE SISTEMAS
INGENIERIA EN SISTEMAS
Ctedra: Procesamiento De Datos I
Profesor: Lic. Marcelo Martinez
AO: 2003
Bsica
Introduccin a la Informtica LL Guillera Aguera EDUNSA
Operacin Programacin de Computadoras M.C. Ginzburg
La PC por Dentro M.C. Ginzburg Bibioteca Tcnica
Superior
Sistemas de Micro computacin Ivan Flores El Atenero
Organizacin de Computadoras Andrew S. Tanenmaum Prentice Hall
Sistemas Operativos Modernos Andrew S. Tanenmaum Prentice may
Principios de Procesamiento de Datos Gordon B. Davis Trillas
Apuntes de la Ctedra Marcelo Martinez Sitio de la Ctedra
en Internet y Copias
Apuntes de la Ctedra Claudia Cesarini Sitio de la Ctedra
en Internet y Copias
Enciclopedia Audiovisual de Computacin Ocano Multimedia
Fundamentos de computadores Digitales Thomas C. Bartee
Complementaria
Matemticas para Computacin McGraw Hill Seymour Lipschutz
Informtica Glosario de Trminos McGraw Hill Antonio Vaquero y Luis
Joyanes
PC Interno Boixareu Editores Data Becker

344

También podría gustarte