Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Manual Datos I 2003 1
Manual Datos I 2003 1
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
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
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
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:
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.
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.
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..
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
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 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.
18
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
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
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.
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
Juegos
Compiladores
Editores
Interpretes
de comandos
SO
Lenguaje de Mquina
Microprogramacin
Dispositivos fsicos
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
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
28
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
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:
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.
36
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
38
39
40
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 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
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.
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
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
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
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.
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
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
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
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.
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
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.
69
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
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
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
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
78
CONCLUSIN
79
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
82
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
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:
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
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
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.
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.
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
95
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
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.
98
99
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.
100
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.
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.
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
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.
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)
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 .
110
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
111
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.
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
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
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
118
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
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).
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.
123
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
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
125
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)
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.
129
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
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
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
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
140
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:
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
146
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
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
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
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
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
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
+
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
Polaca inversa
ABC x +
AB x C +
AB x CD x +
AB + CD - /
AB x C /
AB + C x D + EF + G + /
156
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:
158
Direccin
Palabra de 16 bit
Fuente
Destino
REGISTRO
DEL DESTINO
3
Modo
Nombre
0
Direccionamiento de registro
1
Indirecto sobre registro
2
Auto-incrementado
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
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.
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.
162
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.
A
A desplazado sin extensin del signo
A desplazado con extensin del signo
1 en complemento a uno
1 desplazado 1 bit a la izquierda = 3
1 desplazado 2 bits a la izquierda = 7
1 en complemento a 2
1 desplazado 6 bits a la derecha = 1
163
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.
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.
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
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.
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
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.
173
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
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)
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.
179
180
181
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
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
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.
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
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
193
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:
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.
199
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
201
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
DIRECCIN
1
OPERANDO
DIRECCIN
2
OPERANDO
DIRECCIN
DEL
RESULTADO
204
DIRECCIN
Direccin 1 operando
Direccin 2 operando
Direccin resultado
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.
206
207
208
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
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-
212
b-
213
CONCLUSIN
214
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
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
220
221
222
INTRODUCCIN
223
APUNTES DE CATEDRA
CARRERA:
Ctedra:
Profesor:
AO:
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
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
227
2b
228
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.
229
230
231
232
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
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
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
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:
239
240
241
242
243
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
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
248
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
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:
255
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
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
257
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
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.
261
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
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
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.
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.
EAX,P
EBX,P
Q,EAX
P,EBX
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
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
270
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
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 &.
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
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.
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
277
278
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
280
281
CONCLUSIN
282
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
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
288
289
290
INTRODUCCIN
291
APUNTES DE CATEDRA
CARRERA:
Ctedra:
Profesor:
AO:
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
Perifricos de entrada.
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:
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-
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.
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:
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
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
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
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.
301
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 .
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.
303
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.
304
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:
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 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 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.
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.
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
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
312
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
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:
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.
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
322
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
324
325
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)
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.
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.
328
figura 11).
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).
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).
(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.
333
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
335
336
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.
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.
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
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