UNIVERSIDAD NACIONAL DE LA RIOJA

INGENIERIA EN SISTEMAS Y LICENCIATURA EN
SISTEMAS

MANUAL DE CATEDRA
PROCESAMIENTO DE DATOS I

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

AÑO 2003

INDICE GENERAL
BOLILLA I: LA COMPUTADORA..............................................................................................4
INDICE.......................................................................................................................................5
INTRODUCCIÓN...................................................................................................................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 Básicos:...................................................................................15
BUSES DE COMPUTADORAS:.........................................................................................16
Buses síncronos y asíncronos: ..............................................................................................18
Canales de e/s.........................................................................................................................20
SISTEMA OPERATIVO.......................................................................................................23
CONCLUSIÓN........................................................................................................................25
BOLILLA II (Parte 1): EL NIVEL DE LOGICA DIGITAL.....................................................26
INDICE.....................................................................................................................................27
INTRODUCCIÓN...................................................................................................................34
EL NIVEL DE LOGICA DIGITAL......................................................................................35
COMPUERTAS Y ALGEBRA BOOLEANA......................................................................35
CIRCUITOS DIGITALES BÁSICOS..................................................................................44
MEMORIA............................................................................................................................57
MICROPROCESADORES y BUSES...................................................................................66
CONCLUSIÓN........................................................................................................................79
BOLILLA II (Parte 2): EL NIVEL DE MICROPROGRAMACIÓN.......................................80
INDICE.....................................................................................................................................81
INTRODUCCIÓN...................................................................................................................88
EL NIVEL DE MICROPROGRAMACIÓN .......................................................................89
REPASO SOBRE EL NIVEL DE LÓGICA DIGITAL .......................................................90
UNA MICROARQUITECTURA TIPICA ...........................................................................96
UNA MACROARQUITECTURA TIPICA .......................................................................103
MICROPROGRAMACIÓN: UN EJEMPLO ....................................................................110
EL DISEÑO DEL NIVEL DE MICROPROGRAMACIÓN ............................................115
CONCLUSIÓN......................................................................................................................134
................................................................................................................................................135
BOLILLA II (Parte 3): EL NIVEL DE MAQUINA CONVENCIONAL................................135
INDICE...................................................................................................................................136
INTRODUCCIÓN.................................................................................................................143
EL NIVEL DE MÁQUINA CONVENCIONAL.................................................................144

1

EJEMPLOS DEL NIVEL DE MAQUINA CONVENCIONAL........................................144
FORMATOS DE INSTRUCCIÓN.....................................................................................145
Tipos de Instrucciones ........................................................................................................160
Flujo De Control .................................................................................................................173
CONCLUSIÓN......................................................................................................................187
BOLILLA III: ARQUITECTURA DEL PROCESADOR.......................................................188
INDICE...................................................................................................................................189
INTRODUCCIÓN.................................................................................................................196
ARQUITECTURA DEL PROCESADOR..........................................................................197
ESTRUCTURA GENERAL...............................................................................................197
DESCRIPCIÓN DE LOS COMPONENTES DE UN PROCESADOR ............................197
Microprocesadores...............................................................................................................200
EJECUCIÓN DE LAS INSTRUCCIONES .......................................................................201
ORGANIZACIÓN DE LA CPU ........................................................................................202
LA UNIDAD ARITMÉTICA Y LÓGICA .........................................................................204
LA UNIDAD DE CONTROL.............................................................................................206
FASE DE BÚSQUEDA DE LA INSTRUCCIÓN .............................................................207
FASE DE BÚSQUEDA O ALMACENAMIENTO DEL OPERANDO ...........................207
FASE DE PREPARACIÓN DE LA SIGUIENTE INSTRUCCIÓN .................................209
INSTRUCCIÓN DE RUPTURA DE SECUENCIA ..........................................................209
EL CANAL..........................................................................................................................210
LAS UNIDADES PERIFÉRICAS .....................................................................................211
INTERRUPCIONES ..........................................................................................................211
CONCLUSIÓN......................................................................................................................214
BOLILLA IV: MEMORIA........................................................................................................215
INDICE...................................................................................................................................216
INTRODUCCIÓN.................................................................................................................223
MEMoRia ..............................................................................................................................224
DIRECCIONES DE MEMORIA .......................................................................................225
ORDENAMIENTO DE BYTES ........................................................................................226
CÓDIGOS CORRECTORES DE ERRORES ....................................................................227
CLASIFICACIÓN Y ORGANIZACIÓN DE LAS MEMORIAS .....................................227
PARáMETROS y CARACTERíSTICAS MáS IMPORTANTES DE UNA MEMORIA 228
CONCLUSIÓN......................................................................................................................245
................................................................................................................................................246
BOLILLA V: EL NIVEL DEL LENGUAJE ENSAMBLADOR.............................................246
INDICE...................................................................................................................................247
INTRODUCCIÓN.................................................................................................................254
EL NIVEL DEL LENGUAJE ENSAMBLADOR..............................................................255
INTRODUCCIÓN AL LENGUAJE ENSAMBLADOR ...................................................256
EL PROCESO DE ENSAMBLAJE ...................................................................................261
MACrOS .............................................................................................................................269
MONTAJE (LINKING) y CARGA ...................................................................................272

2

CONCLUSIÓN......................................................................................................................282
BOLILLA VI (Parte 1): PERIFÉRICOS.................................................................................283
INDICE...................................................................................................................................284
INTRODUCCIÓN.................................................................................................................291
PERIFÉRICOS......................................................................................................................292
RESEÑA HISTÓRICA.......................................................................................................292
INTRODUCCIóN ...............................................................................................................292
PERlFERICOS DE ENTRADA: ........................................................................................293
PERIFERICOS DE SALIDA: ............................................................................................304
PERIFERICOS DE COMUNICACION.. ..........................................................................307
CONCLUSIóN....................................................................................................................308
CONCLUSIÓN......................................................................................................................309
BOLILLA VI (PARTE 2): TÉCNICAS Y DISPOSITIVOS DE ENTRADA SALIDA...........310
INDICE...................................................................................................................................311
INTRODUCCIÓN.................................................................................................................318
TECNICAS Y DISPOSITIVOS DE ENTRADA / SALIDA (Input / Ouput)..................319
Dispositivos de fichas y de banda perforada.......................................................................319
Dispositivos de soporte magnético......................................................................................323
Impresoras............................................................................................................................323
Plotter...................................................................................................................................330
La pantalla............................................................................................................................331
Terminales...........................................................................................................................332
Procesos de comunicación para la transmisión de datos a distancia...................................334
Otros periféricos..................................................................................................................334
Técnicas de entrada/salida (input/output)............................................................................335
GLOSARIO.........................................................................................................................340
CONCLUSIÓN......................................................................................................................342
CONCLUSIÓN FINAL..............................................................................................................343
BIBLIOGRAFÍA .......................................................................................................................344

3

BOLILLA I: LA
COMPUTADORA

4

INDICE
INDICE GENERAL............................................................................................1
BOLILLA I: LA COMPUTADORA..............................................................................................4
INDICE.......................................................................................................................................5
INTRODUCCIÓN...................................................................................................................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 Básicos:...................................................................................15
Unidad de Control:.............................................................................................................15
Unidad aritmético-lógica:..................................................................................................15
Memoria:(Memoria Central)..............................................................................................15
Periféricos: ........................................................................................................................15
Núcleo de la computadora: ...............................................................................................15
BUSES DE COMPUTADORAS:.........................................................................................16
Buses síncronos y asíncronos: ..............................................................................................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
TECNOLOGÍA DE CANALES:.......................................................................................21
TIPOS DE CANALES:.....................................................................................................21
Multiplexor: ..................................................................................................................21
Selector..........................................................................................................................22
Multipexor por bloques: ................................................................................................22
Spoll: .........................................................................................................................22
SISTEMA OPERATIVO.......................................................................................................23
Introducción: ....................................................................................................................23
¿QUÉ ES UN SISTEMA OPERATIVO?.........................................................................24
CONCLUSIÓN........................................................................................................................25
BOLILLA II (Parte 1): EL NIVEL DE LOGICA DIGITAL.....................................................26
INDICE.....................................................................................................................................27
INTRODUCCIÓN...................................................................................................................34
EL NIVEL DE LOGICA DIGITAL......................................................................................35
COMPUERTAS Y ALGEBRA BOOLEANA......................................................................35
Compuertas........................................................................................................................35
Algebra booleana...............................................................................................................37
Implementación de funciones booleanas ..........................................................................38

5

.........................................................................................................................................102 UNA MACROARQUITECTURA TIPICA ...................................................................................................................................................................................................................................................103 Pilas ..............................................................80 INDICE..59 Flip-flops y registros.....................51 Circuitos aritméticos........................................................................................................................................................................................................................55 MEMORIA..........................................................................................................74 Manejo de interrupciones ...............................................................61 Propiedades de las memorias...................................95 UNA MICROARQUITECTURA TIPICA ...........................................................................................................................................................................................66 Microprocesadores .90 Buses ...........................................68 Buses síncronos ..........................................................94 Encapsulado de los componentes ...89 REPASO SOBRE EL NIVEL DE LÓGICA DIGITAL ...........Equivalencia entre circuitos............................................44 Circuitos integrados .........................................................................................................................59 Registros...........................................................................................................................................................................................................................................................................51 Arreglos (matrices) lógicos programables ........................................................47 Decodificadores .........................................................................................53 Sumadores ....................................................................70 BUSES ASINCRONOS........................81 INTRODUCCIÓN............................................................................73 Arbitraje del bus ........................................................................................................64 MICROPROCESADORES y BUSES.......59 Biestables D sincronizados................................100 Secuenciamiento de las microinstrucciones .............................................77 CONCLUSIÓN..............................................................................................................................................................................................................................................66 Buses de computadora..........................................................................................................................................................57 Biestables.............................................................................................103 6 ....................88 EL NIVEL DE MICROPROGRAMACIÓN .....96 La ruta de datos ....................................................................................................................................................98 Cronología de las microinstrucciones ..........................................................................................................................................................................................................................47 Multiplexores .....................................................................................90 Registros ..........93 Memoria principal .........................................................................................................60 Organización de las memorias....................................................................................................................................................................................................................................................................................................79 BOLILLA II (Parte 2): EL NIVEL DE MICROPROGRAMACIÓN...................................................................................................................................................................................................................................................................................92 Unidades aritméticas y lógicas y registros de corrimiento ..............................54 Unidades aritméticas y lógicas...................................................................................96 Microinstrucciones ..........................44 Circuitos combinacionales ........................................................................57 Bieslables SR sincronizados.................................................92 Relojes ...........................................40 CIRCUITOS DIGITALES BÁSICOS.............................................................................................................49 Comparadores .................................................................................................................................................53 Registros de corrimiento.........................................................55 Relojes ....................................................................................................................................................................90 Multiplexores y decodificadores ..........................................................................................................................................................................................................

.........................................151 Indexación..150 Direccionamiento de registros.....150 Direccionamiento directo......................................................129 CONCLUSIÓN..........................................El juego de macroinstrucciones ...........................................179 7 .....................................................................................115 Microprogramación horizontal frente a microprogramación vertical.....................................................161 Operaciones unarias ..........................................................................................................................................................................................................110 El ejemplo de microprograma ...................................................................................................................................................................................143 EL NIVEL DE MÁQUINA CONVENCIONAL..................123 Memoria caché ..........................................155 Evaluación de fórmulas en la notación polaca inversa.............................................................................................................................................157 Ejemplos de direccionamiento.......................................................................................................................................................................................................................149 Direccionamiento inmediato.............................................................144 EJEMPLOS DEL NIVEL DE MAQUINA CONVENCIONAL.......................................................................................................................................145 Criterios de diseño de formatos de instrucción....................................................................164 Instrucciones de llamada a procedimiento .................................................................167 Entrada / salida ......................................................................................................................149 Direccionamiento......................................................................................................................................115 Nanoprogramación ..........................................................................166 Control de iteraciones ......................................114 EL DISEÑO DEL NIVEL DE MICROPROGRAMACIÓN ...............................................................113 Perspectivas ..151 Direccionamiento indirecto.................................................................................162 Comparaciones y Saltos Condicionales..............................................................................144 FORMATOS DE INSTRUCCIÓN...157 Algoritmo....................................................................................................................................................................................................................................................................................................................147 Ejemplos de formatos de instrucciones........................................................................168 Flujo De Control .......................................................................................................................................................160 Instrucciones de movimiento de datos ...............................174 Corrutinas ........................................................................173 Procedimientos .............................................173 Flujo de control secuencial y saltos ................................160 Direccionamiento en la PDP-11........................................................................................153 Notación polaca inversa..................146 Códigos de operación con extensión............................................................135 INDICE............................................................................................................135 BOLILLA II (Parte 3): EL NIVEL DE MAQUINA CONVENCIONAL...................................................................................................................................................................................................................................................................157 Algoritmo....160 Tipos de Instrucciones ..................................134 .........................................................................................................................................................................................................................................................................149 La PDP-11......................................152 Direccionamiento por medio de pilas.......................................................................................................110 El lenguaje micro ensamblador ...............................................................................................................................122 Mejora del rendimiento ................................................................................................................................136 INTRODUCCIÓN.....................................................111 Observaciones sobre el microprograma .........107 MICROPROGRAMACIÓN: UN EJEMPLO .......................................................................................161 Operaciones binarias ...................................................................................................................................................................................

239 Modo de direccionamiento directo ..................233 Memorias pasivas..............................................................................196 ARQUITECTURA DEL PROCESADOR................209 INSTRUCCIÓN DE RUPTURA DE SECUENCIA .......................................................................................................................................................................................................................................................................................207 Caso de almacenamiento del operando: .........................................................................................................................................................................236 Memorias asociativas ....................................................................................................................................................183 ACCIONES DE HARDWARE ......................................................................................................................223 MEMoRia ................................................................................................................206 FASE DE BÚSQUEDA DE LA INSTRUCCIÓN ..............202 LA UNIDAD ARITMÉTICA Y LÓGICA ..................................................................................................188 INDICE..........................................................................................................229 Memorias de acceso aleatorio (RAM = Ramdom Acess Memory) ......................182 Interrupciones .............238 MODOS DE DIRECCIONAMIENTO ..............................................................................227 CLASIFICACIÓN Y ORGANIZACIÓN DE LAS MEMORIAS ...........................................................211 INTERRUPCIONES ..........211 CONCLUSIÓN.............................................................................................................................................................................................................................................................................................................................................224 DIRECCIONES DE MEMORIA ................................183 ACCIONES DE SOFTWARE ...........227 PARáMETROS y CARACTERíSTICAS MáS IMPORTANTES DE UNA MEMORIA 228 Capacidad....................................204 LA UNIDAD DE CONTROL........................229 Estructura de una RAM semiconductora .......................................................................................208 FASE DE PREPARACIÓN DE LA SIGUIENTE INSTRUCCIÓN .................................................................................................................................................................................................................... seguido de procesamiento: ................................................210 LAS UNIDADES PERIFÉRICAS ...............................................................................................................................184 CONCLUSIÓN......................................................197 Microprocesadores..........................................197 ESTRUCTURA GENERAL.............................................................................................................................................................................................................................................................200 EJECUCIÓN DE LAS INSTRUCCIONES ..................187 BOLILLA III: ARQUITECTURA DEL PROCESADOR...231 Pastillas de memoria en paralelo ........197 DESCRIPCIÓN DE LOS COMPONENTES DE UN PROCESADOR .............................................................................................................................209 EL CANAL..............................................................................................................207 Caso de búsqueda del operando...........................................................................................................................................................................................................................................228 Formas de acceder a las posiciones de memoria ....................235 Memorias de acceso serie ............................................................................................................................207 FASE DE BÚSQUEDA O ALMACENAMIENTO DEL OPERANDO .................................................................240 8 ..........................................................................201 ORGANIZACIÓN DE LA CPU ...................................................226 CÓDIGOS CORRECTORES DE ERRORES .........................................................................189 INTRODUCCIÓN.........215 INDICE................................239 Modo de direccionamiento indirecto ......................................................................................Desvios .......................................................................225 ORDENAMIENTO DE BYTES ...................214 BOLILLA IV: MEMORIA...................................................................216 INTRODUCCIÓN.....

................................279 CONCLUSIÓN................................296 Ratones Estacionarios.........................................................................................................................................................................................................................296 BOLAS GIRATORIAS: ..........................................................................256 Formato de una sentencia en lenguaje ensamblador ......296 9 ................................................................................247 INTRODUCCIÓN.................................................................................................294 MOUSE (RATON) ........................................................................................................................256 ¿Qué es un lenguaje ensamblador? ........................................................................................................................................................................................................................................................................266 La tabla de símbolos ............258 Afinación de programas .....................................................................................................274 Estructura de un módulo objeto ...................................................................................................................................................................................................................................................................................................259 EL PROCESO DE ENSAMBLAJE ................................................................255 INTRODUCCIÓN AL LENGUAJE ENSAMBLADOR ..............................................................................................................................................................Modo de direccionamiento relativo ..................243 Otros modos de direccionamiento ..271 Implementación de macros en un ensamblador .......................291 PERIFÉRICOS............................................246 INDICE..........267 MACrOS ................282 BOLILLA VI (Parte 1): PERIFÉRICOS..........................................................277 Enlace dinámico ................................................................................................................................................................ lenguaje ensamblador y los lenguajes de alto nivel ..................................296 Ratones Inalámbricos..........................................................................................................................................254 EL NIVEL DEL LENGUAJE ENSAMBLADOR..284 INTRODUCCIÓN...........................................................................................................................................................................................................................................................................272 Tareas realizadas por el programa ensamblador ................................242 Modo de direccionamiento por registro indirecto ............................................................................................................................................................................................... llamada y expansión de una macro ......................................................................................................245 ........................................................293 Cuidados y advertencias.........................240 Modo de direccionamiento indexado ........................................................................................................257 Comparación entre el.........................................................................................................246 BOLILLA V: EL NIVEL DEL LENGUAJE ENSAMBLADOR........................................261 La primera pasada ...................................................................................................262 La segunda pasada .........................................283 INDICE........................................292 PERlFERICOS DE ENTRADA: ......................................................................................295 Tipos de ratones...............................................................................296 PANTALLAS TÁCTILES: ..............244 CONCLUSIÓN..........269 Macros con parámetros ............................................................................................................................................292 RESEÑA HISTÓRICA..................................... .........276 Tiempo de ligadura y reubicación dinámica ............................................................................292 INTRODUCCIóN ...............................................................261 Ensambladores de dos pasadas .....................................................................293 TECLADO: ...........................................................................................................................................................................................................................................................269 Definición.....271 MONTAJE (LINKING) y CARGA .................................................................................................................

...........................................306 Impresoras láser: ................................................................................................................................................................................................................................................297 Escáner de Rodillo:...........307 Aspectos técnicos..................................................................................................................................................................298 PERIFERICOS DE ALMACENAMIENTO: ....................................................................305 Impresoras con cinta entintada: ................................................................307 Como usar la Tecnología 56K ..................................................................303 PERIFERICOS DE SALIDA: ...........................................................................ESCANER ..........307 MODEM................................................................................................................300 Disco duro.................................................................................296 Profundidad de color................................................................................297 Escáner de Sobremesa: .......................................................................300 Discos opticos: ........................................................ .................................................................................................................301 Cintas magneticas: ....................................... .................................................................................................303 El futuro del DVD: ...................................................309 BOLILLA VI (PARTE 2): TÉCNICAS Y DISPOSITIVOS DE ENTRADA SALIDA..............................306 Impresoras de inyección de tinta: ..................297 LECTORES DE CODIGO DE BARRA..................................297 Desventajas: ...........303 El disco por dentro: ............................................................................................................299 Fiabilidad del soporte............................................................................................................. ............................................................................300 Facilidad de manejo y almacenamiento...........................................................................................................................................................................311 10 ....................................................................................................... Disco flexible de 3 1/2pulgadas .................................................................................................................................................................................308 CONCLUSIÓN..........................................................................................................................................................................................................................................................306 Impresoras térmicas: ............................................................297 Ventaja: ........................................................................................................... Disco flexible de 5 1/4 pulgadas ..............................................................................................................................................303 La compresión MPEG-2: .........................................................300 1..........................................................................................................................297 Escáner de mano: ......................................................................................................................................................................306 PERIFERICOS DE COMUNICACION........................................................................................................................................304 Impresoras................................................................................................................................302 DVD:........................................296 Tipos de escáner:..............................307 CONCLUSIóN......306 Impresoras sin cinta entintadas: .......................................................................................................297 TABLETA DIGITALIZADORA...........................................................305 Impresoras de agujas: ....................................................................................................................................................................................................................300 2....299 Discos flexibles...............297 Calibración............................................................................................298 LECTORES DE TARJETAS MAGNETICAS..................................................................................................................297 Desventajas: .........................................................................297 Ventajas: .........................................304 PANTALLAS DE SISTEMAINFORMATICO (Monitor): .302 Prestaciones del DVD: ...............................................306 Impresoras Láser de color: ..........................................................298 LAPIZ OPTICO: ...................................................................................................................................................305 Impresora de Bola: ......................................................................299 Discos.....................................310 INDICE...................................

........................................................................................................................................................................................................................................................................................................319 Dispositivos de soporte magnético.......................................................318 TECNICAS Y DISPOSITIVOS DE ENTRADA / SALIDA (Input / Ouput)................................................................................................................................342 CONCLUSIÓN FINAL.................................................................................................................................................338 Transferencia DMA ..................................................................334 Otros periféricos....................................................................................................................................................................................................................................................................331 Terminales....................................................................................INTRODUCCIÓN................................................................................................................................340 CONCLUSIÓN........................................................336 Interrupciones (interrupts) ....................323 Impresoras..............................................................................................344 11 ........................................................................................................................332 Procesos de comunicación para la transmisión de datos a distancia.............................................................................................................................339 GLOSARIO......334 Técnicas de entrada/salida (input/output)..........330 La pantalla........335 Polling (interrogatorio de tráfico) .......343 BIBLIOGRAFÍA ........................................................323 Plotter................................................319 Dispositivos de fichas y de banda perforada.....................................................

INTRODUCCIÓN 12 .

Aporta un alto nivel de fiabilidad por su precisión y su control. La velocidad operativa se mide en millones de operaciones por segundo. largos y que exigen una gran precisión. asistir una operación quirúrgica. prevenir riesgos atmosféricos. 13 . realizar una exploración delicadísima del cerebro humano. Lo que no debemos olvidar es que la computadora sólo está limitada por nuestra propia capacidad imaginativa. ni padecen. Son dos perspectivas distintas y complementarias. ver la casa antes de construirla. realiza otro tipo de tarea que consiste en el manejo de los Procesos. Además de la actividad de realizar cálculos numéricos. Del término francés ordinateur procede la denominación de Ordenador que se refiere a la tarea de poner en orden la información. enviar cartas a la velocidad de la luz. probar recetas de cocina. y suponen por ello un gran esfuerzo por parte del hombre. FUNCIONES Y ACCIONES: La computadora tiene una estructura mecánica que permite realizar operaciones a gran velocidad. si bien los desarrollos en microcomputación y nuevos lenguajes han de proveer a este instrumento de un motor social mucho más poderoso. tareas en las que la máquina se muestra incansable e insensible y que.: la realización de un censo de la población. La computadora puede hacer muchas cosas: controlar el riego y las condiciones ambientales de una plantación. la computadora ofrece unas posibilidades enormes para la realización de procesos que. La ventaja de la máquina a este respecto es que ni sienten . regular todos los elementos mecánicas y electrónicos de un edificio. La computadora se la relaciona a un cerebro electrónico. generan fatiga en el hombre. PARA QUÉ SIRVE UNA COMPUTADORA?: La computadora introdujo un cambio cualitativo. a la vez que permite eludir tareas repetitivas al ser humano. Por ej. por el contrario. teniendo en cuenta que debe ser programada para cada tarea que se requiera. También recibe el nombre de cerebro electrónico. de otro modo no serían factibles (por su duración). El término computadora procede del inglés (computer) y significa máquina de computar o calcular. Marcelo Martinez 2003 LA COMPUTADORA CONCEPTO: Máquina capaz de realizar y controlar a gran velocidad cálculos y procesos complicados que requieren una toma rápida de decisiones mediante la aplicación sistemática de criterios preestablecidos. Como resultado de estas características. tanto en la organización como en el desarrollo del trabajo y el ocio.APUNTES DE CATEDRA CARRERA: Cátedra: Profesor: AÑO: LICENCIATURA EN ANALISIS DE SISTEMAS – INGENIERIA EN SISTEMAS Procesamiento De Datos I Lic. realizar el censo de población de un país. Y no por lo que es sino por lo que hace. ni tampoco rentables (requerirían concurso de muchas personas). la celeridad con que elabora sus cálculos es sorprendente. Los cálculos y procesos que lleva a cabo la computadora son complicados en el sentido que resultan prolijos. La computadora puede recibir diversos nombres. La computadora trata diversas informaciones. las ordena y combina apropiadamente según las indicaciones de un programa. etc. la confección de la nómina o el tratamiento de texto.. y así sucesivamente.

Al software se lo clasifica en dos grupos: Software de Base: controla las operaciones de la computadora en sí (Sistema Operativo. El resultado es una pieza llamada Chip. efectivamente. Significan que existen unos elementos materiales o tangibles. otros componentes de los circuitos son los condensadores y las inductancias. los sintonizadores radiofónicos. Sobre la capa metálica se conectan los distintos componentes. un cable enrollado sobre un núcleo de metal. La conexión de tantísimos elementos sería físicamente imposible si no fuera por los circuitos integrados. Un transistor es una combinación de metales semiconductores. etimológicamente. Lo que llamamos corriente eléctrica es. esto es un circuito impreso. se comporta como un interruptor. que en una superficie de escasos milímetros cuadrados contiene millones de transistores. amplificar y hacer más intensa una corriente eléctrica. en función de la cantidad de corriente eléctrica que recibe se cierra o se abre. y una moderna necesita millones de transistores conectados para realizar todas sus funciones. Quizás el circuito más sencillo sea una lámpara enchufada a la corriente eléctrica. El transistor es el resultado de la unión especial de tres semiconductores. condensadores e inductancias se fabrican. Software de Aplicación: los cuales resuelven problemas para los usuarios (programas del usuario). los aparatos y terminales y también unos elementos intangibles de programación. Un condensador sirve para acumular carga eléctrica hasta un límite a partir del cual ya no deja pasar más corriente. HARDWARE Y SOFTWARE: La computadora presenta dos aspectos íntimamente relacionados: el hardware y el software. Los átomos que los componen están organizados en una estructura cristalina. al pasar la corriente. Los circuitos electrónicos en lugar de cable eléctrico utilizan una fina capa de metal sobre un soporte de silicio. Además de las resistencias. que se designan como soporte lógico. o sumamente complejo como el que hace funcionar a una supercomputadora. Con resistencias. Un circuito integrado es una superposición de finísimas capas de material semiconductor en las que se recortan y unen los transistores mediante complicados procesos de alta tecnología. Así pues.COMPUTADORA Y CIRCUITOS: Una computadora en el fondo no es más que un circuito electrónico muy complejo. los que forman el llamado soporte físico del procesamiento de la información como los circuitos. Software: Conjunto de Instrucciones de programa de computador que dirige la operación del hardware. por ejemplo. El término software designa aquella otra parte “blanda” o lógica. como sumar números binarios. por otra. la computadora se compone de una parte dura y de una parte blanda. A base de combinar transistores se consiguen circuitos capaces de realizar funciones complejas. por una parte. la resistencia se calienta hasta que empieza a emitir luz. Bios). Un transistor permite. La lámpara es una resistencia. El elemento que más ha influido en el desarrollo de las computadoras es el transistor. un circuito eléctrico puede ser sencillo como el recién descrito. Los semiconductores son materiales con una estructura atómica particular. Estas expresiones han de entenderse metafóricamente. una corriente de cargas eléctricas que pasa a través de una circuito de la misma manera que el agua circula por las tuberías. La palabra inglesa hardware se refiere a aquella parte “dura” o material. Una inductancia es una bobina. 14 . Un conjunto completo de instrucciones para ejecutar un conjunto de tareas relacionadas se llama PROGRAMA. La inductancia es sensible a las variaciones de corriente eléctrica. Las computadoras no son más que grandes manojos de transistores combinados muy hábilmente. Ahora bien. Un conjunto de instrucciones para una tarea específica se llama Rutina.

más conocida con las siglas inglesa de Central Processing Unit. es decir. y el modem ( modelador y demodelador de frecuencia). La CPU es la encargada de desarrollar las actividades fundamentales que realiza una computadora. Memoria:(Memoria Central) La memoria es el almacén donde se registran y quedan a disposición de la CPU los datos y programas. y abarca todos los componentes materiales de la propia computadora. monitores. pero necesarias. memoria de sólo lectura). producto. sean mecánicos. así como las unidades periféricas. La CPU como ya dijimos comprende la unidad de control (UC) y la unidad aritmético-lógica(UAL). el ratón o mouse. La memoria RAM (siglas de la expresión inglesa Random Access Memory. de varias maneras: abierto/cerrado. el escáner. 1/0. no puede alterarse. división. cuando se desconecta el aparato. que es decimal o de base diez. el monitor la unidad lectora de disco. or. Cada impulso eléctrico implica la memorización del dígito uno y la interrupción de la corriente determina la memorización de un cero. con los datos suministrados. a ella sólo se tiene acceso para leer o ver que contiene. Unidad aritmético-lógica: Es la parte donde se realizan todos los procesos. ).). la memoria ROM (siglas que corresponden a la expresión inglesa Read Only Memory. o de relación lógica ( >. La memoria es de dos tipos: ROM y RAM.COMPONENTES BÁSICOS: Unidad de Control: La unidad de control realiza la función de dirección central. La memoria ROM puede imaginarse como una caja cerrada con una tapa de cristal. Núcleo de la computadora: El núcleo de la computadora está compuesto por la CPU y la memoria. viene prefijada físicamente por el fabricante. Toda la codificación juega con un sistema binario. para que la máquina sepa cómo tiene que operar con los programas y los datos que se le introduzcan. que puede ejemplificarse dependiendo del dispositivo físico tomado como modelo. los fundamentales son el teclado. =. la información que contiene desaparece( por eso antes de apagar la máquina hay que guardar o grabar la información en el dispositivo físico correspondiente) . el hardware difícilmente puede ser modificado. que le indica las acciones que ha de realizar. El sistema binario se distingue del que utilizamos normalmente. memoria de acceso aleatorio). La memoria ROM es fija. es la que el usuario puede utilizar libremente. o sea. Por 15 . a través de las indicaciones de la unidad de control. <. y asigna las tareas a las distintas partes del conjunto. la impresora .Hardware: Es el conjunto de elementos físicos (máquinas y circuitos) y puede ser comparado con la fuerza. Interpreta las instrucciones del programa. ARQUITECTURA . eléctricos o electrónicos. resta. CPU. es decir. con el lenguaje máquina (código binario). etc. Periféricos: Los periféricos son elementos que forman parte del sistema físico del equipo y que cumplen funciones adicionales. impresoras. conectado/desconectado. entre otros. and. etc. Existen muchos tipos de periféricos. sean teclados.. mientras que la RAM es volátil y. Realiza operaciones matemáticas ( suma. contiene los programas necesarios (englobados en la expresión sistema operativo). La reunión de la unidad de control y de la unidad aritmético-lógica forma un conjunto mayor que se denomina Unidad Central de Proceso de Datos. y pueda relacionar los lenguajes de alto nivel (escrito por el programador). La memoria consiste en millones de pequeños circuitos que sólo memorizan dos tipos físicos de información: si pasa corriente o si no pasa. se conserva en toda circunstancia.

así como las instrucciones de procesamiento y los resultados de las operaciones parciales. A través de los periféricos se produce la entrada y la salida de información. que anteceden y suceden a la etapa central. Este ritmo es rapidísimo. que distribuye las tareas en el taller. La estructura interna de la computadora realiza la función del tratamiento y conservación de la información. Los trabajos que éstos llevan a término pasan de nuevo por el director. La UC es una especie de mecanismo de relojería electrónico interno que lee y ejecuta una instrucción tras otra. quién controla la exactitud y calidad de las operaciones realizadas. con conectores espaciados a intervalos regulares para conectar tarjetas de memoria y de entrada/salida. un camino de doble dirección entre la unidad de control y la unidad aritmético-lógica. como se ilustra en la siguiente figura: 16 . a la UAL. por ello se conocen también con el nombre de dispositivos de entrada y salida o de E/S. también existe un camino doble entre la unidad de control y la memoria. UC UAL Instruccione s Datos Resultados Canal Memoria Central Canal Unidad Central de Proceso Unidades De E/S Unidades Periféricas La UC puede compararse al director de la fábrica. BUSES DE COMPUTADORAS: Un bus es una ruta eléctrica común entre múltiples dispositivos. Dentro de la misma pastilla del microprocesador puede haber varios buses para conectar sus componentes internos. Hay pues.el contrario la memoria RAM es como un casillero de hotel (o celdas). cartas u otras cosas. Los periféricos que se acoplan proveen dos etapas más. con trabajadores contables que realizan todos los cálculos y procesos que se les indican. Para saber cómo debe operar dispone de unos programas recogidos en la memoria ROM que le instruyen acerca de las normas elementales de una labor de dirección. en el que se depositan llaves. Se tiene acceso a él y se puede cambiar la disposición y los tipos de cosas que contiene. allí se guardan todos los elementos que han ingresado. La memoria Central es comparable al almacén de la fábrica. Un ejemplo común es el Bus del Sistema presente en toda microcomputadora. a un ritmo dado. Estas tres fases reúnen la labor desarrollada por las computadoras. el cuál consiste de 50 a 100 alambres de cobres paralelos grabados en al tarjeta matriz.

Ejemplo de Combinaciones: Maestros y Esclavos del Bus. en especial si éste es relativamente largo tiene muchos o tiene muchos dispositivos conectados.Registros Buses Bus del Sistema ALU Tarjeta de memoria Tarjeta de E/S Tarjeta de E/S Bus integrado a la pastilla Bus Local Coprocesador Los Buses son los ilustrados por las líneas con Flechas. Sin embargo LA MEMORIA NO PUEDE. Los Sistemas de cómputo pueden tener varios buses. Esas reglas se denominan Protocolo del Bus. deben haber reglas bien definidas del funcionamiento de éste. Flotante DMA(acceso directo memoria) Extracción de operadores Debido a que las señales binarias que emiten los dispositivos no son lo suficientemente fuertes para activar el Bus. el controlador puede actuar más adelante como dispositivo Maestro. Por esto la mayoría de los dispositivos maestros se conectan al bus a través de una pastilla denominada manejador del bus. Hay varias combinaciones típicas entre dispositivos Maestros y esclavos. al indicar a la memoria que acepte las palabras que lee de la unidad del disco. las cuales deben ser obedecidas por todos los dispositivos conectados al mismo. ésta actúa como dispositivo Maestro el controlador como esclavo. de pto. A pesar que los diseñadores de microprocesadores tienen la libertad de usar cualquier clase de Bus. Cuando la CPU ordena leer o escribir un bloque a un controlador de discos.y datos Inicio de transferencia de datos Traspaso de inst. En forma similar los dispositivos esclavos. Sin embargo. bajo ninguna circunstancia. que es en esencia un amplificador digital. tanto físicamente como en términos de voltaje. a efecto que las tarjetas diseñadas por terceras personas puedan conectarse al Bus del sistema. Asimismo debe haber especificaciones mecánicas y eléctricas para que las tarjetas diseñadas por terceros se ajusten al gabinete de tarjetas y tengan los conectores necesarios para acoplarse a la tarjeta Matriz. Maestro CPU CPU CPU E/S Coprocesador Esclavo Memoria E/S Coprocesador Memoria Memoria Ejemplo Extracción de instrucc. A los activos s les llama Maestros mientras que a los pasivos se les denomina Esclavos. se conectan 17 . actuar como dispositivo Maestro. Algunos dispositivos conectados al Bus se encuentran en estado activo y pueden iniciar transferencias. mientras que otros están en estado pasivo aguardando solicitudes.

Todos ellos tienen un gran impacto en la velocidad y en la amplitud de banda del Bus. Por su parte. Activar SINE ocasiona que se activen las líneas de datos. así que desactiva SINE. y el manejo de errores. Por lo tanto. el mecanismo de arbitraje. 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. Un Bus tiene lineas de direcciones de datos y de control. activar esta última señal conduce a desactivar las líneas de direcciones. pero el hecho de que la mayoría de los buses son síncronos por la razón de que es más fácil construir sistemas síncronos. (como el caso del síncrono. Finalmente. otra para escritura de memoria. una tercera para lectura de E/S. un bus típico tendrá una línea para lectura de memoria. Al conjunto de señales enlazadas de esta forma se le denomina sincronización completa o bidireccional. terminando así la lectura. RD Y SINM. el manejo de interrupciones. • Se desactiva SINE en respuesta a la desactivación de SINM. MREQ (indica que la memoria y no un dispositivo está siendo accesada). sabe que los datos están disponibles de modo que los almacena en un registro interno y desactiva las líneas de direcciones lo mismo que MREQ. en vez de que todo esté amarrado al reloj. denominados ciclos del bus. se utiliza una pastilla combinada llamada transmisor-receptor del bus. La CPU solo activa sus señales y la memoria sólo reacciona a éstas. una cuarta para escritura de E/S y así sucesivamente. • Se desactiva SINM en respuesta a SINE. como lectura o escritura de la memoria o de entrada/salida. El otro tipo de bus.1 ciclos. Con esto debe quedar claro las ventajas de los buses asíncronos. RD (distingue las operaciones de lectura de las de escritura) y cualquier otra que necesite. los buses pueden clasificarse en dos categorías: un Bus síncrono tiene una línea manejada por un oscilador de cristal. cundo el esclavo observa desactivada la señal SINM. cuando el bus maestro ha activado las señales de dirección. el bus asíncrono no tiene un reloj maestro. esto es un bus sin reloj maestro. La señal de esta línea consiste en una onda cuadrada con una frecuencia que varía entre 5 y50 MHZ. A vez. ya que los ciclos fraccionados están prohibidos. esto es uno de los inconvenientes). con todas las señales desactivadas y aguardando el siguiente ciclo. Por ejemplo a algunos microprocesadores tienen tres patas que codifican las operaciones que se están realizando. Si una CPU y una memoria particular son capaces de completar una transferencia en 3. Cuando el dispositivo esclavo ve esta señal. BUSES SÍNCRONOS Y ASÍNCRONOS: Dependiendo de los ciclos de tiempo. Hay aspectos relevantes a tener en cuenta en el diseño de buses tales como: la sincronización del bus. RD Y SINM. Para los dispositivos que pueden actuar ya sea como maestros o esclavos. realiza su trabajo tan rápido como puede.por medio de un receptor del bus. Todas las actividades del bus se realizan en un número entero de estos ciclos. se requiere de una pastilla decodificadora entre la CPU y dicho Bus para convertir la señal codificada de tres bits en señales separadas que puedan ser manejadas por las líneas del bus. activa entonces una señal especial llamada SINM (SINcronización Maestra). sin embargo no es necesario que haya una correspondencia de 1 a 1 entre las señales de ambos. todo el trabajo se realiza en múltiples enteros del reloj del bus. deben ampliarla a 4. sabe que el ciclo se ha completado. desactivar SINM causa la desactivación de SINE.. debido a sus intervalos de tiempos discretos. Lo mejor es manejar una tecnología mixta utilizando un asíncrono. regresando a la situación original.0. A su vez. activando al terminar la señal SINE (SINcronización Esclava). así como también provoca que el esclavo active SINE. cuya parte esencial consta de 4 pasos: • Se activa SINM • Se activa SINE en respuesta a SINM. MREQ. 18 . Tan pronto como el maestro ve activada la señal SINE.

Este método. Pero también las pastillas de E/S pueden actuar como maestros para lecturas y escrituras de memoria así como para provocar interrupciones. prioridades asignadas dependiendo de qué tan cerca se encuentren del árbitro. de modo que al final de cada ciclo de bus. comparado con el centralizado requiere de un mayor número de líneas de bus. Si este dispositivo no fue quien originó la solicitud. el que actúa en la misma forma y así sucesivamente hasta que un dispositivo acepte la señal y haga uso del bus. los coprocesadores pueden convertirse en maestros del bus. Aquí la idea es que la CPU puede esperar mientras que los dispositivos de entrada/salida deben obtener el uso del bus rápido o pierden los datos que están recibiendo. las respuesta para evitar el caos. pero se le asigna la prioridad más baja y sólo puede ocupar el bus cuando nadie más lo usa. es el mecanismo de arbitraje del bus. Asimismo. la CPU. Cuando se utiliza el arbitraje del bus descentralizado no existe un árbitro. por ejemplo. Cada dispositivo está conectado a algunos de los niveles de solicitud del bus. girando los discos a altas velocidades no pueden esperar. como en una serie de foquitos de navidad. 19 . cada dispositivo sabe si tiene la prioridad más alta y de ahí. verifica si fue él quien hizo la solicitud. en efecto. En la práctica los buses tienen 4. se podrá usar el bus durante el ciclo siguiente. algunos buses tienen múltiples niveles de prioridad. Cuando el dispositivo que se encuentra físicamente más cerca del árbitro recibe la señal.8 o 16 niveles. Dicha línea está conectada en serie a través de todos los dispositivos de E/S. Ejemplo de encadenamiento margarita: Solicitud del Bus árbitro Autorización del bus 1 2 3 4 Dispositivos de E/S En muchos sistemas. Para cada nivel existe una línea de solicitud y una línea de respuesta. autoriza su uso activando la línea de respuesta del bus. Cuando alguno de ellos necesita el bus. El bus contiene una línea de solicitud que puede ser activada por uno o varios dispositivos en cualquier momento. No hay forma de que el árbitro sepa cuántos dispositivos han solicitado el bus. Lo único que distingue es : existen solicitud(es) y no existen solicitud(es). la CPU puede también competir por el bus. la señal se propaga al siguiente dispositivo en la línea. Al fin de evitar las prioridades implícitas basadas en la distancia del árbitro. en cuyo caso hace uso del bus y evita que la señal se siga propagando. poseen. Todos los dispositivos monitorean todas las líneas de solicitud. este diseño limita el número de dispositivos a 16. un bus tiene 16 líneas priorizadas de Solicitud del bus. En el primer caso un solo árbitro del bus determina qué dispositivo tiene acceso. activa su línea de solicitud. Cuando el árbitro recibe una solicitud para el bus. A este esquema se lo denomina encadenamiento margarita. y tiene la prioridad de que los dispositivos.Arbitraje del bus: Sabemos en forma tácita que solo hay un Bus maestro. con aquellos que tienen tiempos más críticos conectados a las líneas con prioridades más altas. ¿Qué sucede si dos o más dispositivos desean actuar como bus maestros al mismo tiempo?. Este mecanismo puede Centralizado o Descentralizado. pero evita el costo potencial del árbitro. El dispositivo más cercano tiene la prioridad más alta.

escribe una clave especial en uno de los Registros. Ejecutan operaciones de E/S y son: • De lectura y escritura. • De control de programa (bifurcación). la cual maneja directamente la pata de interrupción de la CPU. Entonces. WR(de escritura). EL MICROPROGAMA DEL CANAL: está compuesto por dos grupos de instrucciones: 1. envía un impulso a la 8259A en INTA (INTerrupción Recibida). Cuando alguno de estos dispositivos desea realizar una interrupción. • De control de periféricos. se pueden conectar en forma directa hasta 8 pastillas controladoras de E/S. Funciones: • Puede seleccionar periféricos por si solo. La señal de interrupción indica que requiere del Bus. Características: el canal tiene su juego de instrucción propio y son auténticos procesadores (menos potentes que el procesador central). por lo general esperar una interrupción cuando termine el trabajo. • Tiene la posibilidad de conversión de datos cuando existe disparidad de buses. Dentro de la pastilla existen varios registros (por ej. Instrucciones de E/S que ejecuta el procesador central: • Indica cuando se inicia y finaliza la operación de E/S.Manejo de interrupciones: Cuando la CPU instruye a algún dispositivo de E/S para que haga algo. activa su línea de la señal INT (INTerrupción). colocando el número de éste en el bus de datos. para encontrar la dirección del procedimiento a ejecutar para atender esa interrupción el hardware de la CPU utiliza dicho número como índice en una tabla de apuntadores denominados vectores de interrupción. Una vez que el software ha manejado la interrupción y está lista para la siguiente.). a menos que tenga otra interrupción pendiente. Existen en el mercado pastillas estándar para el control de las interrupciones y su uso está muy extendido. En este punto. y todo sus clones (IBM-PC compatibles) usan una pastilla Intel 8259A. Cuando esta última está en disposición de manejar la interrupción. y se usa un árbitro centralizado para dar prioridad a aquellos que tengan los tiempos más críticos. la pastilla controladora deberá especificar qué dispositivo causó la interrupción. PC/AT. Lo gestiona independientemente: reconoce por si solo cuál es la dirección y cuál es el periférico y tiene un buffer que puede convertir la disparidad de capacidad de trasferencia.: RD(lectura). Para evitar que los dispositivos quieran enviar una interrupción al mismo tiempo se asigna prioridades a los dispositivos. 20 . En las entradas de Solicitud de Interrupción. • Puede controlar esos periféricos (comienza o finaliza la operación) • Puede seleccionar áreas de memoria donde ocurrirán las operaciones de E/S. Se la conoce también como procesador esclavo. 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. en donde la CPU puede leer o escribir. Las IBM-PC. lo que provoca que la pastilla 8259A desactive INTR. 2. CS(selección de pastilla).

tiene la posibilidad de hacer un ensamblado o desensamblado de datos. Reparte su tiempo entre los periféricos que están conectados a él. pero de a uno por vez. ya que cambiaria la dimensión. ya que si se añadiera un periférico a un procesador de E/S se tendría que rediseñar la lógica dela matriz. 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.TECNOLOGÍA DE CANALES: 1. De conexión en serie: con procesador de E/S puede atender a varios periféricos. 21 . Matríz de Conexiones Dinámicas: cualquier canal puede atender a cualquier periférico que están conectados a todos los canales. que la matriz de conexión dinámica. Su problema es que se adapta mal al crecimiento. Placa controladora Procesador de E/S 1 Procesador de E/S 2 P1 P2 P1 P3 P2 P3 Es mucho más barata pero más problemática. aunque los otros procesadores de E/S estén libres. • UN REGISTRO DE DIRECCIONES DE MEMORIA: apunta a la memoria. Canal 1 Bus Canal 2 Canal 3 P1 P2 P3 TIPOS DE CANALES: Multiplexor: Es de velocidad baja por atiende a todos los periféricos. puesto que no se puede comunicar con dos periféricos que están colgados al mismo procesador de E/S. 2.

Para ello el sistema forma una cola de impresiones. es decir. Multipexor por bloques: Es una mezcla de los dos anteriores.• UN REGISTRO DE ESTADO: permite conocer el estado de la transferencia. Por ejemplo al mismo tiempo. entonces tiene que utilizarse un dispositivo Dasd (dispositivo de almacenaje de acceso directo). En él leen o escriben muchos usuarios.: Periféricos (imp. Spoll: (operaciones periféricas simultáneas en línea)..PC RIFE: que contiene la identidad del periférico que intervendrá en la operación de E/S. • UN REG. de manera que aparenta una multiprogramación . Ej. Aquí se comienza a hacer operaciones del tipo virtual (el spoll permite la impresión simultánea). Ensamblado: operación de unir bytes para formar 16 bits.DE ENSAMBLADO que chequea la entrada de datos. que tiene la capacidad de leer y almacenar datos grandes y de mucho trabajo y. • UN REG. Dispositivo DASD: son dispositivos de almacenaje de acceso directo. que se utilizan para leer o escribir datos de muchos trabajos. El problema surge cuándo varios usuarios quieren hacer uso de la impresora. Selector Atiende a un solo periférico por vez. además tienen la particularidad de ser compartido. Desensamblado: operación que descompone una transmición en bytes.DE DESENSAMBLADO que chequea errores de la salida de datos. • UN REG. sin necesidad de esperar que otro usuario que está utilizando el servicio lo desocupe. • UN CONTADOR DE PALABRAS: que llegará a valer 0 cuándo termine la transmisión. a todo éste procedimiento se llama Spoll. Puede trabajar como multiplexor o selector. Como sería una mala inversión asignarle un impresora para cada usuario se buscó la manera de que cada una misma impresora éstos pueden imprimir sus trabajos. Accede a memoria solo para depositar datos tiene: • UN REGISTRO DE DIRECCIÓN: que le indica de donde se deben leer o escribir los datos. que éste sistema hace una administración independiente de la impresora. 4 22 .discos duros) SEVER Usuario 1 11 Usuario 2 Usuario 3 Us.DIR.

terminales. por ejemplo: READ BLOCK FROM FILE. Es importante saber que estos programas no forman parte del SO aunque fabricante de computadoras los 23 .. Con el software puede almacenar.: para hacer la instrucción ADD el microprograma debe determinar la localización de los números que se desean sumar. compiladores.. esperar que se detengan. la más baja contiene los dispositivos físicos conformados por chips. la mayoría sirve para desplazar datos a través de la máquina. la dirección de la memoria principal. cables. Este nivel del Software se llama SO. en la memoria exclusiva para lectura. el cuál consta de varias capas. el byte de conteo. en fin un Sistema complejo. Es en realidad un intérprete busca las instrucciones de lenguaje de máquina tales como ADD. Para proteger a los programadores de la complejidad del Hardware se colocó un nivel del Software por encima del Hardware con el fín de controlar todas las partes del Sistema y presentar al usuario una interfáz o MAQUINA VIRTUAL que facilite la comprensión del programa. que controla todos los recursos de la computadora Y proporciona la base sobre la cuál pueden escribirse los programas de aplicación. Ela práctica son necesarios muchos más parámetros. y recuperar información. Aquí se encuentra el intérprete de comandos que es el SHELL. que tiene por lo general de 50 a 300 instrucciones. Este software llamado microprograma se localiza por lo general. y la instrucción (Read – Write). etc. sumarlos y almacenar el resultado en alguna parte. Por arriba del SO. MOVE Y JUMP para llevarlas a cabo como una serie de pequeños pasos.: se puede ordenar a un disco que lea al cargar los valores de la dirección del disco. En esta capa los dispositivos de E/S se controlan al cargar valores en registros del dispositivo Especiales. dispositivos de E/S. Por ej. La forma de construirlos y el responsable está a cargo del Ingeniero. procesar. Una de las principales funciones del SO es ocultar toda esa complejidad y proporcionar al programador un conjunto más conveniente de instrucciones con el cuál trabajar. etc. y otros dispositivos físicos similares. está el resto del Software del Sistema. discos. El programa fundamental de todos los programas del Sistemas es el Sistema Operativo (SO).SISTEMA OPERATIVO Introducción: Ya sabemos que una computadora sin el Software es una masa metálica sin utilidad. buscarlos. Editores. es poco probable que pudieran escribirse muchos programas. memoria principal ( o memoria central). En la figura siguiente vemos: En la parte inferior se encuentra el Hardware. en sus registros. tubos de rayos catódicos. • Programas de Aplicación o Software de Aplicación: Los cuales resuelven problemas para los usuarios. es conceptualmente más sencillo que tener que preocuparse de los detalles de movimiento de las cabezas del disco. Si cada programador tuviera que preocuparse por la forma de funcionamiento de las unidades de disco y con las docenas de cosas que podrían salir mal. El conjunto de instrucciones que interpreta el microprograma definen al LENGUAJE DE MÁQUINA.Electrónico. Un sistema de computación moderno consta de uno o más procesadores. Por ej. hacen operaciones aritméticas y comparan valores. relojes. 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 aplicación Programas de Sistemas Hardware Sistema bancario Reservación en una línea aérea Juegos Compiladores Editores Interpretes de comandos SO Lenguaje de Máquina Microprogramación Dispositivos físicos A continuación viene un software primitivo que controla en forma directa los dispositivos y proporciona una interfaz más limpia con la siguiente capa.

los dispositivos de E/S y demás recursos. que sea más fácil de programar que el Hardware adyacente.: lectura/escritura de un dispositivo periférico. etc. llevar la cuenta de su uso y mediar entre las solicitudes en conflicto de los distintos programas y usuarios. El SO es un Sistema o conjunto de programas con fines diversos. CONTROLADOR DE RECURSOS: Supongamos qué. dar paso a las solicitudes de recursos. debido que con frecuencia los usuarios deben compartir recursos tales como las unidades de cinta. qué es parte del SO y que está protegido por el Hardware contra los intentos de escritura. o cálculos de Ingenieria. Desde otro punto de vista lo podemos analizar como: UNA MÁQUINA EXTENDIDA O MÁQUINA VIRTUAL. tres programas qué están en ejecución intentaran imprimir sus salidas en forma simultánea en la misma impresora. él está en libertad de escribir el suyo propio si lo desea. agrupados en Subsistemas. etc. ocultando también varios asuntos pocos agradables relacionados con las interrupciones. como así también la información entre aquellos usuarios que trabajan juntos. como un disco. cronómetros. 24 . Por último sobre los programas del Sistema se encuentran los programas de Aplicación.proporcione juntos.. pero no tiene la libertad de escribir su propio Controlador de Interrupciones del disco. es necesario mayor control y protección de la memoria. En resumen el SO lleva un registro de la utilización delos recursos. juegos. los cuales se pueden leer o escribir en ellos. controlar y administra el tiempo de la CPU. control dela memoria y otras a características de bajo nivel. El SO es un programa que oculta la verdad acerca del Hardware al programador y presenta una agradable y sencilla visión de los archivos con su nombre. así también protege al programador del Hardware del disco y presenta una sencilla interfáz orientada a archivos. Los compiladores y editores se ejecutan en modo usuario. . El resultado sería un caos. ordenar la información a almacenar. Si un usuario no necesita utilizar un compilador particular. cada uno de los cuales cumple con una misión específica supervisados por un programa que cumple la función de control de la actividad de la CPU. Está protegido contra la alteración por parte del usuario por el Hardware (Ahora). El SO ordena este caos el almacenar en el disco todas las salidas destinadas a la impresora. como el procesamiento de datos comerciales. el SO podría entonces copiar su salida desde el disco hacia la impresora y si una computadora tiene varios usuarios. ¿QUÉ ES UN SISTEMA OPERATIVO? Es un conjunto de programas que tiene como propósito posibilitar que los programas problemas evolucionen ordenadamente en el computador. denominado SUPERVISOR. Estos son escritos por l9s usuarios para resolver problemas particulares. resolviendo todas las situaciones que podrían no estar previstas en esos programas facilitando la explotación del equipo e independizando a los programadores de tareas rutinarias y complejas como por ej. El SO es esa parte del Software de Base que se ejecuta en modo central o modo de supervisión. Al concluir uno de los programas.

CONCLUSIÓN 25 .

BOLILLA II (Parte 1): EL NIVEL DE LOGICA DIGITAL 26 .

.....................................................23 Introducción: ......23 ¿QUÉ ES UN SISTEMA OPERATIVO?.......21 TIPOS DE CANALES:........15 BUSES DE COMPUTADORAS:................19 Manejo de interrupciones:.................18 Arbitraje del bus:........................14 HARDWARE Y SOFTWARE: ....................................................................................................................................................22 SISTEMA OPERATIVO..............................................13 CONCEPTO:...............................................................................................................................................................................15 Arquitectura ......................................15 Unidad aritmético-lógica:...................................................................................21 Multiplexor: ................................................................................................................15 Núcleo de la computadora: ..................................12 LA COMPUTADORA................................................................................................................................................................................................................34 EL NIVEL DE LOGICA DIGITAL............26 INDICE....................Componentes Básicos:................................................................13 Para qué sirve una computadora?:.................................................................................................................................................................................................................................................................................................................................................................24 CONCLUSIÓN........35 Compuertas..............................................................................................................................................................................................................................................................................................22 Multipexor por bloques: .........................................................13 FUNCIONES Y ACCIONES:.......................................................................................................................................................................................................................................................................................................................................37 Implementación de funciones booleanas ...................................................................14 Hardware:.....................15 Unidad de Control:...........................................................................................................................................................................27 INTRODUCCIÓN...............................................................................................................INDICE INDICE GENERAL..........................................................................................................................................................................................................................5 INTRODUCCIÓN.........................15 Periféricos: ....................................................................................15 Memoria:(Memoria Central).....................................................................20 TECNOLOGÍA DE CANALES:................................................................................................................................................................................................................................................................................................................................................................................................16 Buses síncronos y asíncronos: ................................................................................................................................................................................................................................................................................................19 Dispositivos de E/S.......1 BOLILLA I: LA COMPUTADORA...............................................................................................20 Canales de e/s.............21 Selector................................19 Solicitud del Bus.............38 27 .................................................................................19 Ejemplo de encadenamiento margarita:.....13 Computadora y Circuitos:...........................25 BOLILLA II (Parte 1): EL NIVEL DE LOGICA DIGITAL........35 Algebra booleana.......................................................................................................................................................................................................35 COMPUERTAS Y ALGEBRA BOOLEANA..................................................................................................................14 Al software se lo clasifica en dos grupos: ........................................................................................4 INDICE......................................................................................................14 Software: ....................................................................................................................................................................................................22 Spoll: ...........................................................

.............100 Secuenciamiento de las microinstrucciones ........66 Buses de computadora....................................................................................................................................................................................................................................................................................................................59 Registros..96 Microinstrucciones .........................................................................................................................................................................................................................................................................................Equivalencia entre circuitos...................................51 Arreglos (matrices) lógicos programables .................................................................44 Circuitos integrados .........................................................................61 Propiedades de las memorias................................................................................................................68 Buses síncronos ....................................................................................55 Relojes ................55 MEMORIA..........................................................................98 Cronología de las microinstrucciones .....89 REPASO SOBRE EL NIVEL DE LÓGICA DIGITAL ............49 Comparadores ...............................94 Encapsulado de los componentes ...........................95 UNA MICROARQUITECTURA TIPICA .......................................................................................81 INTRODUCCIÓN.............................................................................................................................................................................................................................70 BUSES ASINCRONOS..........................................................................................................................................................................................................................................................................................................................................................96 La ruta de datos ..........................................................................................................59 Biestables D sincronizados......................................................................................77 CONCLUSIÓN..............102 UNA MACROARQUITECTURA TIPICA ............................................................47 Decodificadores ........54 Unidades aritméticas y lógicas.........................................51 Circuitos aritméticos..........................66 Microprocesadores ....................................................80 INDICE...........................................................................................................................................................................................................................57 Biestables...........................................................................................................................90 Registros ....................................................................................................................................................................................................103 Pilas .............................................................................................................................................................................................................................................................................................................................................................44 Circuitos combinacionales ...........................................................................................................................................................................................................................59 Flip-flops y registros................92 Relojes .................................................................................................................................................................................................................................................................................................................................................74 Manejo de interrupciones .........................................90 Buses .......................................................................................................................................................................................................57 Bieslables SR sincronizados...................................................92 Unidades aritméticas y lógicas y registros de corrimiento ....................40 CIRCUITOS DIGITALES BÁSICOS....................................................................................................................................................................................................................................................................47 Multiplexores ...........................................................................60 Organización de las memorias..........................53 Sumadores ..53 Registros de corrimiento............88 EL NIVEL DE MICROPROGRAMACIÓN ..90 Multiplexores y decodificadores ................79 BOLILLA II (Parte 2): EL NIVEL DE MICROPROGRAMACIÓN........................................................................................................................................73 Arbitraje del bus ................93 Memoria principal ..................................................103 28 ..............................................................................................................64 MICROPROCESADORES y BUSES............................................................................

................................................................................................................................................146 Códigos de operación con extensión.........157 Algoritmo............................................................................................................................................143 EL NIVEL DE MÁQUINA CONVENCIONAL....................................................115 Nanoprogramación .................................135 BOLILLA II (Parte 3): EL NIVEL DE MAQUINA CONVENCIONAL........................................................136 INTRODUCCIÓN............................................................................149 La PDP-11.........144 EJEMPLOS DEL NIVEL DE MAQUINA CONVENCIONAL........................................................................110 El lenguaje micro ensamblador ........................................................................................................................................155 Evaluación de fórmulas en la notación polaca inversa........................................................................................................................................151 Indexación........................................................................................................................................................................................................................................................................................................................................................................................153 Notación polaca inversa.....................150 Direccionamiento directo.....................................................................................173 Flujo de control secuencial y saltos ...............................................................................162 Comparaciones y Saltos Condicionales....................................................................................................114 EL DISEÑO DEL NIVEL DE MICROPROGRAMACIÓN ......168 Flujo De Control ..............134 ....................................................................................................................................................................................107 MICROPROGRAMACIÓN: UN EJEMPLO ................179 29 ...............................160 Instrucciones de movimiento de datos ...............................151 Direccionamiento indirecto....................................................................................................................................................................................................................................................................................................129 CONCLUSIÓN..................160 Direccionamiento en la PDP-11..........................................................................................................................157 Ejemplos de direccionamiento..................................................................................................................135 INDICE...............................161 Operaciones unarias ....111 Observaciones sobre el microprograma ...................El juego de macroinstrucciones .....164 Instrucciones de llamada a procedimiento ................144 FORMATOS DE INSTRUCCIÓN...................................................................................................................................152 Direccionamiento por medio de pilas........................................................................................................................................................145 Criterios de diseño de formatos de instrucción.......................................................................................................................................................................................................160 Tipos de Instrucciones .................................................................................................................................................161 Operaciones binarias .....................................115 Microprogramación horizontal frente a microprogramación vertical....................................................150 Direccionamiento de registros.................................................................................123 Memoria caché ............................................................................................................................................................................................................................................................................................................................167 Entrada / salida ....................................................................................................................149 Direccionamiento inmediato...................110 El ejemplo de microprograma ...............147 Ejemplos de formatos de instrucciones......................................................................................................166 Control de iteraciones ................................................................................157 Algoritmo.................................................................................................................................113 Perspectivas ........................................................................................................................................149 Direccionamiento.....................................122 Mejora del rendimiento ...........................................................................................................174 Corrutinas .............................173 Procedimientos .......

Desvios ............................................................................................................................182
Interrupciones .................................................................................................................183
ACCIONES DE HARDWARE ..................................................................................183
ACCIONES DE SOFTWARE ...................................................................................184
CONCLUSIÓN......................................................................................................................187
BOLILLA III: ARQUITECTURA DEL PROCESADOR.......................................................188
INDICE...................................................................................................................................189
INTRODUCCIÓN.................................................................................................................196
ARQUITECTURA DEL PROCESADOR..........................................................................197
ESTRUCTURA GENERAL...............................................................................................197
DESCRIPCIÓN DE LOS COMPONENTES DE UN PROCESADOR ............................197
Microprocesadores...............................................................................................................200
EJECUCIÓN DE LAS INSTRUCCIONES .......................................................................201
ORGANIZACIÓN DE LA CPU ........................................................................................202
LA UNIDAD ARITMÉTICA Y LÓGICA .........................................................................204
LA UNIDAD DE CONTROL.............................................................................................206
FASE DE BÚSQUEDA DE LA INSTRUCCIÓN .............................................................207
FASE DE BÚSQUEDA O ALMACENAMIENTO DEL OPERANDO ...........................207
Caso de búsqueda del operando, seguido de procesamiento: .........................................207
Caso de almacenamiento del operando: ..........................................................................208
FASE DE PREPARACIÓN DE LA SIGUIENTE INSTRUCCIÓN .................................209
INSTRUCCIÓN DE RUPTURA DE SECUENCIA ..........................................................209
EL CANAL..........................................................................................................................210
LAS UNIDADES PERIFÉRICAS .....................................................................................211
INTERRUPCIONES ..........................................................................................................211
CONCLUSIÓN......................................................................................................................214
BOLILLA IV: MEMORIA........................................................................................................215
INDICE...................................................................................................................................216
INTRODUCCIÓN.................................................................................................................223
MEMoRia ..............................................................................................................................224
DIRECCIONES DE MEMORIA .......................................................................................225
ORDENAMIENTO DE BYTES ........................................................................................226
CÓDIGOS CORRECTORES DE ERRORES ....................................................................227
CLASIFICACIÓN Y ORGANIZACIÓN DE LAS MEMORIAS .....................................227
PARáMETROS y CARACTERíSTICAS MáS IMPORTANTES DE UNA MEMORIA 228
Capacidad.........................................................................................................................228
Formas de acceder a las posiciones de memoria ............................................................229
Memorias de acceso aleatorio (RAM = Ramdom Acess Memory) ............................229
Estructura de una RAM semiconductora ................................................................231
Pastillas de memoria en paralelo ........................................................................233
Memorias pasivas....................................................................................................235
Memorias de acceso serie ...........................................................................................236
Memorias asociativas ..................................................................................................238
MODOS DE DIRECCIONAMIENTO ..........................................................................239
Modo de direccionamiento directo .............................................................................239
Modo de direccionamiento indirecto ..........................................................................240
30

Modo de direccionamiento relativo ............................................................................240
Modo de direccionamiento indexado ..........................................................................242
Modo de direccionamiento por registro indirecto .......................................................243
Otros modos de direccionamiento ..............................................................................244
CONCLUSIÓN......................................................................................................................245
................................................................................................................................................246
BOLILLA V: EL NIVEL DEL LENGUAJE ENSAMBLADOR.............................................246
INDICE...................................................................................................................................247
INTRODUCCIÓN.................................................................................................................254
EL NIVEL DEL LENGUAJE ENSAMBLADOR..............................................................255
INTRODUCCIÓN AL LENGUAJE ENSAMBLADOR ...................................................256
¿Qué es un lenguaje ensamblador? .................................................................................256
Formato de una sentencia en lenguaje ensamblador .......................................................257
Comparación entre el. lenguaje ensamblador y los lenguajes de alto nivel ...................258
Afinación de programas ..................................................................................................259
EL PROCESO DE ENSAMBLAJE ...................................................................................261
Ensambladores de dos pasadas .......................................................................................261
La primera pasada ...........................................................................................................262
La segunda pasada ..........................................................................................................266
La tabla de símbolos .......................................................................................................267
MACrOS .............................................................................................................................269
Definición, llamada y expansión de una macro ..............................................................269
Macros con parámetros ...................................................................................................271
Implementación de macros en un ensamblador ..............................................................271
MONTAJE (LINKING) y CARGA ...................................................................................272
Tareas realizadas por el programa ensamblador .............................................................274
Estructura de un módulo objeto ......................................................................................276
Tiempo de ligadura y reubicación dinámica ...................................................................277
Enlace dinámico ..............................................................................................................279
CONCLUSIÓN......................................................................................................................282
BOLILLA VI (Parte 1): PERIFÉRICOS.................................................................................283
INDICE...................................................................................................................................284
INTRODUCCIÓN.................................................................................................................291
PERIFÉRICOS......................................................................................................................292
RESEÑA HISTÓRICA.......................................................................................................292
INTRODUCCIóN ...............................................................................................................292
PERlFERICOS DE ENTRADA: ........................................................................................293
TECLADO: .....................................................................................................................293
Cuidados y advertencias..............................................................................................294
MOUSE (RATON) .........................................................................................................295
Tipos de ratones...........................................................................................................296
Ratones Inalámbricos. .............................................................................................296
Ratones Estacionarios..............................................................................................296
PANTALLAS TÁCTILES: ............................................................................................296
BOLAS GIRATORIAS: .................................................................................................296

31

ESCANER ......................................................................................................................296
Profundidad de color....................................................................................................296
Tipos de escáner:.........................................................................................................297
Escáner de mano: ....................................................................................................297
Ventaja: ...............................................................................................................297
Desventajas: ........................................................................................................297
Escáner de Sobremesa: ...........................................................................................297
Ventajas: .............................................................................................................297
Desventajas: ........................................................................................................297
Escáner de Rodillo:..................................................................................................297
Calibración...................................................................................................................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 compresión 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 térmicas: ...............................................................................................306
Impresoras de inyección de tinta: ...........................................................................306
Impresoras láser: .....................................................................................................306
Impresoras Láser de color: ......................................................................................306
PERIFERICOS DE COMUNICACION.. ..........................................................................307
MODEM..........................................................................................................................307
Aspectos técnicos.........................................................................................................307
Como usar la Tecnología 56K ................................................................................307
CONCLUSIóN....................................................................................................................308
CONCLUSIÓN......................................................................................................................309
BOLILLA VI (PARTE 2): TÉCNICAS Y DISPOSITIVOS DE ENTRADA SALIDA...........310
INDICE...................................................................................................................................311

32

INTRODUCCIÓN.................................................................................................................318
TECNICAS Y DISPOSITIVOS DE ENTRADA / SALIDA (Input / Ouput)..................319
Dispositivos de fichas y de banda perforada.......................................................................319
Dispositivos de soporte magnético......................................................................................323
Impresoras............................................................................................................................323
Plotter...................................................................................................................................330
La pantalla............................................................................................................................331
Terminales...........................................................................................................................332
Procesos de comunicación para la transmisión de datos a distancia...................................334
Otros periféricos..................................................................................................................334
Técnicas de entrada/salida (input/output)............................................................................335
Polling (interrogatorio de tráfico) ...................................................................................336
Interrupciones (interrupts) ..............................................................................................338
Transferencia DMA ........................................................................................................339
GLOSARIO.........................................................................................................................340
CONCLUSIÓN......................................................................................................................342
CONCLUSIÓN FINAL..............................................................................................................343
BIBLIOGRAFÍA .......................................................................................................................344

33

INTRODUCCIÓN

34

APUNTES DE CATEDRA
CARRERA:
Cátedra:
Profesor:
AÑO:

LICENCIATURA EN ANALISIS DE SISTEMAS –
INGENIERIA EN SISTEMAS
Procesamiento De Datos I
Lic. Marcelo Martinez
2003

EL NIVEL DE LOGICA DIGITAL
En el nivel jerárquico inferior de la figura 1-2 se encuentra el nivel de lógica digital,
que es el verdadero hardware de la computadora. En este capítulo examinaremos muchos
aspectos de la lógica digital como elemento básico para el estudio de los niveles superiores,
comentados en los capítulos siguientes. El presente estudio hará énfasis en las
microcomputadoras, no sólo porque son fáciles de comprender sino porque se están
volviendo cada vez más importantes.
Los elementos básicos con que se construyen las computadoras digitales son
asombrosamente simples. Empezaremos nuestro estudio examinando estos elementos
básicos y el álgebra especial de dos valores (álgebra de Boole) que se usa para analizarlos.
Luego estudiaremos algunos circuitos fundamentales que pueden construirse usando
combinaciones simples de compuertas, incluyendo algunos que realizan operaciones
aritméticas. En seguida veremos cómo pueden combinarse las compuertas para almacenar
información, es decir, cómo se organizan las memorias. Después abordaremos el tema de
las CPU, con especial atención a la forma en que las CPU integradas en una pastilla de silicio
se conectan con la memoria y los dispositivos periféricos.

COMPUERTAS Y ALGEBRA BOOLEANA
Los circuitos digitales pueden construirse a partir de un número pequeño de elementos
primitivos combinándolos en innumerables formas. En las siguientes secciones se
describirán tales elementos, se mostrará cómo pueden combinarse
éstos y se presentará una poderosa técnica matemática útil para analizar su
comportamiento.

Compuertas
Un circuito digital es aquel en el que están presentes dos valores lógicos. Por
convención, una señal 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 pequeños dispositivos electrónicos, denominados
compuertas, pueden calcular varias funciones de estas señales de dos valores. Las
compuertas forman la base material con que se
construyen las computadoras digitales. Los detalles de cómo funcionan por dentro las
compuertas están 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 básica de suyo
sencilla. Toda la lógica digital moderna descansa en el hecho de que se puede hacer
funcionar un transistor como si fuera un conmutador binario muy rápido. En la figura 3-1(a)
aparece un transistor bipolar (el círculo) 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 crítico, el transistor se corta,
actuando como una resistencia infinita, y hace que la salida del circuito, Vs , tome un valor
prácticamente igual a Vcc, un voltaje regulado por fuera, por lo común de + 5 volts. Cuando

35

(En la práctica. La resistencia es necesaria para limitar la corriente que fluye por el transistor. Vs está bajo y viceversa. Se denominan compuertas NOT. Las cinco compuertas de la figura 3-2 son los elementos principales para la construcción del nivel de lógica digital. En la figura 3-1(c) los dos transistores se conectan en paralelo. si alguna o ambas entradas es 1 y 0 si ambas son 0. el transistor correspondiente conducirá y llevará la salida hacia tierra. Si cualquiera de las entradas estuviera con la tensión baja. Los símbolos convencionales utilizados para dibujar estas tres compuertas se muestran en la figura 3-2(a)-(c). que convierte el 0 lógico en 1 lógico y el 1 lógico en 0 lógico. si alguna de las salidas es alta. se puede expresar el valor de salida en función de los de entrada. Estos tres circuitos. En la figura 3-1 (b) se han puesto dos transistores en serie. Este circuito se llama compuerta Y o AND y su símbolo y descripción funcional se dan en la figura 3-2( d). En esta configuración. Lo importante es darse cuenta de que. El circuito es por tanto un inversor. muchas computadoras están basadas en compuertas NAND y NOR y no en las más familiares AND y OR. Si ambas entradas estuvieran bajas. denominada compuerta OR. Si se adopta la convención de que "alto" (Vcc volts) es el 1 lógico y "bajo" (tierra) el 0 lógico. NAND y NOR respectivamente. mientras que las AND y OR requieren tres. en lugar de conectarse en serie. Vs estará baja si tanto V1 como V2 están altas. la compuerta NOR puede conectarse a un inversor para obtener un circuito cuya salida sea 1. ambos transistores conducirían y Vs bajaría. Si las tensiones V1 y V2 fueran altas simultáneamente. las compuertas se realizan en una forma algo diferente. junto con el comportamiento funcional de cada circuito. forman las tres compuertas más simples. La figura 3-2(e) muestra el símbolo y la descripción funcional de esta compuerta. Los pequeños círculos que forman parte de los símbolos del inversor. cuando V e está alto. actuando como un conductor perfecto y haciendo que Vs tome el valor de tierra (por convención. Por esa razón. el transistor conmutará. la salida permanecería alta. siendo su salida 1 si y sólo si ambas entradas son 1. tendríamos otro circuito que sería el inverso de la compuerta NAND. la compuerta NAND y la compuerta NOR se llaman burbujas de inversión y suelen también usarse en otros contextos para expresar una señal invertida. pero las NAND y NOR son aún más simples que las 36 . Si la señal de salida de la figura 3-1(b) se introduce en un inversor. 0 volts).Ve exceda del valor critico. El tiempo necesario para conmutar de un estado a otro suele ser de unos pocos nanosegundos. o sus equivalentes. En otras palabras. el transistor correspondiente se cortaría y la salida quedaría alta. Las compuertas NOT se suelen denominar inversores. De manera similar. De la explicación anterior debió quedar en claro que las compuertas NAND y NOR requieren dos transistores cada una.

NAND es 1110.Transistor (llamada TTL). 10 y 11. que no haremos distinción alguna. entre las que están las designadas por las siglas PMOS. la función puede describirse completamente por el número de 2 n bits obtenido al leer verticalmente la columna de resultado de la tabla de verdad. f. Las tablas de la figura 3-2 son ejemplos de tablas de verdad. se describirán las familias tecnológicas más importantes. se le denomina álgebra de Boole o álgebra booleana. Las dos tecnologías más importantes son la bipolar y la MOS (Metal-OxidoSemiconductor). Aunque el tema de cómo se hacen las compuertas pertenece al nivel de dispositivo. y la Lógica Acoplada por Emisor (denominada ECL). indicando cada una de ellas el valor de la función para una combinación determinada de los valores de entrada. por lo que pueden empaquetarse en forma muy compacta. debido a que se mencionan con frecuencia. CMOS y otras que van apareciendo día tras día. Así como hay funciones en el álgebra "ordinaria" (la que se imparte en la escuela secundaria). una compuerta NAND. que ha sido durante años el material de trabajo de la electrónica digital. en el orden 00. puede tener un número arbitrario de entradas. por ejemplo.) También se usan abundantemente compuertas de más de dos entradas. Por el contrario.AND y OR. que se usa cuando se necesita gran velocidad. en realidad nos referimos aun tipo específico de álgebra booleana denominada álgebra de conmutación. sólo existen 16 funciones booleanas de dos variables. el término "álgebra booleana" se usa tan ampliamente con el significado de "álgebra de conmutación". Entre las bipolares están la Lógica de Transistor. 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 . por lo que puede especificarse completamente como una tabla de 2 n filas. AND es 0001 y OR es 0111. esto es. sin embargo. NMOS. Una función booleana de n variables sólo tiene 2" conjuntos posibles de valores de entrada. Como esta álgebra fue inventada por el matemático inglés George Boole (1815-1864). En principio. Esta función es la función NOT de la figura 3-2(a). se necesita un nuevo tipo de álgebra en que las variables y las funciones sólo puedan tomar los valores 0 y 1. 01. Algebra booleana Para describir los circuitos que se pueden construir combinando compuertas. Una función sencilla. aunque en la práctica no suelen tener más de ocho. NOR es 1000. Evidentemente. Una función booleana toma una o varias variables de entrada y da por resultado un valor que depende sólo de ellas. correspondientes alas 16 posibles combinaciones de 4 bits. Las compuertas MOS son 10 veces más lentas que las TTL y 100 veces más que las ECL pero no necesitan casi energía ni espacio. también hay funciones en el álgebra de Boole. Hay muchas variedades de compuertas MOS. En rigor. puede definirse diciendo que f (A) es 1 si A es 0 y f(A) es 0 si A es 1. para dos variables. Esta tabla se denomina tabla de verdad. Así. Si se toma el acuerdo en listar siempre las filas de una tabla de verdad en el orden numérico (base 2).

Se escribe primero la tabla de verdad de la función. Para no enmarañar la figura. sin necesidad de hilos "verticales" intermedios. se suele usar otro tipo de notación. la formulación de una función booleana como suma de hasta 2n términos productos lleva directamente a una de las implementaciones posibles. compuertas AND a una compuerta OR. como máximo. La función M es cierta si se cumple cualquiera de esas condiciones. Las líneas tienen una disposición conveniente para usarlas como entradas de las compuertas ulteriores. 6 y 7 usan A como entrada. AB + BC significa que A = 1 y B = 0. como se verá en seguida. las compuertas 5. por ejemplo. El circuito de la figura 3-3(b) usa una convención que se necesitará repetidamente en todo el libro: cuando se crucen dos líneas. La figura 3-3(a) muestra la tabla de verdad de una función booleana de tres variables: M = f (A. por lo que se puede escribir M = ABC + ABC + ABC + ABC como una forma compacta de dar la tabla de verdad. debido a que lleva en forma directa a su realización usando compuertas ordinarias.entradas. Se dispone una compuerta Y o AND para cada término que tenga un 1 en la columna de resultado. ABC significa que A = 1. o que B = 1 y C = 0. Así. una para cada término de la ecuación ( es decir. como se indicó antes. Además. Las cuatro filas de la figura 3-3(a) que producen 1 en sus salidas son: ABC. La ausencia de la barra significará que vale 1. Por convención se pone una barra sobre la variable de entrada cuyo valor sea 0. es decir. En la función de la figura 3-3(a). B = 0 y C = 1. En la parte (b) de la figura vemos las entradas A. 2 n términos "producto" de n variables. Así. ya que cada variable puede tomar un número infinito de valores. uno por cada fila de la tabla de verdad con un 1 en la columna de resultado). se supondrá que no están conectadas a menos que esté dibujado un punto grueso en la intersección. 2 y 3. Como se necesitan los complementos de las entradas. a medida que el número de variables crece esta notación se hace más y más engorrosa. es muy importante. 2. es 0 si la mayoría de sus entradas es 0. En el ejemplo de la figura 3-3 se aprecia con toda claridad cómo se realiza un circuito para cualquier función booleana: 1. la salida de la compuerta 3 cruza las seis líneas verticales. Puede verse cómo se lleva a cabo esta realización por medio del ejemplo de la figura 3-3. Cada compuerta y calcula una fila de la tabla de verdad. 5. Se conectan las entradas apropiadas a las compuertas AND. se usa la multiplicación implícita o el punto para significar Y o AND y el símbolo + para significar O u OR. Es la función mayoría. Implementación de funciones booleanas Como ya se mencionó. B. otros autores usan convenciones diferentes. se han dibujado seis líneas verticales. Por ejemplo. una función de n variables puede describirse como una "suma" de. ABC y ABC. hay cuatro combinaciones que hacen que M valga 1. Aunque todas las funciones booleanas pueden especificarse dando su tabla de verdad. Para entender cómo se origina esta otra notación. Sin embargo. C). ABC. Finalmente todos los términos se pasan por una compuerta OR para obtener el resultado final. El circuito contiene cuatro compuertas Y. 3. También. 38 . se los genera conectando a las entradas los inversores 1. Se conectan todas las salidas de las. pero sólo está conectada a C. y 1 si la mayoría es 1. Esta formulación. Por ejemplo. tres de ellas conectadas a las variables de entrada y las otras tres a sus complementos. B y C a la izquierda y la salida M a la derecha. En un circuito real probablemente estas compuertas se conectarían directamente a A. obsérvese que cualquier función booleana puede especificarse diciendo qué combinaciones de las variables de entrada dan el valor 1. Se generan los complementos de las entradas por medio de inversores. 4. Por ello.

39 .

por ejemplo. AND y OR. Por ejemplo. Afortunadamente es muy fácil convertir los circuitos generados por el algoritmo anterior en otros con sólo compuertas NAND o NOR. el consumo de energía. Ningún otro tipo de compuertas tiene esa propiedad. Para hacer esa conversión. El álgebra de Boole puede ser una herramienta muy útil en la búsqueda de circuitos equivalentes. Aunque este procedimiento no da lugar a circuitos óptimos. compuertas de dos entradas en lugar de cuatro). La fila de arriba de la figura 3-4 muestra como se pueden realizar las tres funciones exclusivamente con compuertas NAND. AND y OR empleando un único tipo de compuerta. siendo ésta una razón más por la que se prefieren como elemento básico en la construcción de circuitos. Equivalencia entre circuitos Los diseñadores de circuitos naturalmente intentan reducir el número de compuertas para disminuir el costo de los componentes. el espacio de circuito impreso.Aunque se ha mostrado cómo realizar cualquier función booleana con compuertas AND. Para reducir la complejidad de un circuito. A + B + C + D puede calcularse como (A+B)+(C+D).) Una forma de implementar una función booleana usando sólo compuertas NAND y NOR consiste en seguir primero el procedimiento señalado anteriormente para construirla con compuertas NOT. OR y NOT. usando tres compuertas O de dos entradas. se sustituyen las compuertas NOT. suele ser preferible realizar los circuitos con un solo tipo de compuerta. pero no son las únicas posibilidades. AND y OR por los circuitos de la figura 3-4. mientras que la fila de abajo indica cómo hacerlo con compuertas NOR. Se dice que las compuertas NAND y las NOR son completas porque a partir de ellas puede generarse cualquier función booleana. utilizando compuertas de dos entradas. Luego. véase la figura 3-5. 40 . (Estas son formas directas. sí muestra que siempre es posible una solución. se procede a reemplazar las compuertas de entrada múltiple con circuitos equivalentes. Finalmente. el diseñador debe encontrar otro que calcule la misma función que el original con menos compuertas (o quizá con compuertas más simples. lo único que se necesita es una forma de realizar las funciones NOT. etc. en el sentido de un mínimo número de compuertas.

Para aplicar este método necesitamos algunas identidades del álgebra de Boole.7(c) y (d). Negando ambas formas de la ley de Morgan llegamos a las figuras 3. En la figura 3. Es interesante constatar que cada propiedad tiene dos formas duales. indicándose la inversión tanto en las entradas como en la salida. Existen símbolos análogos de la ley de de Morgan con variables múltiples (por ejemplo. las demás pueden obtenerse por intuición.7(b). vemos que una compuerta NOR puede dibujarse como una compuerta y con sus entradas negadas. por ejemplo. una compuerta NANO de n entradas se convierte en una OR con n entradas negadas). y también 0 y 1. AB + AC puede escribirse como A (B + C).He aquí un ejemplo de cómo puede usarse el álgebra de Boole: considérese el circuito y la tabla de verdad para AB + AC. un diseñador puede representar un circuito como una función booleana y aplicar después el álgebra de Boole a esta representación para tratar de encontrar una equivalente más simple.7(a) se muestra la forma AND. Todas las propiedades se pueden demostrar construyendo sus tablas de verdad. es fácil ver en las tablas de verdad de la figura 3-5 que A(B + C) es equivalente a AB+AC. que muestran representaciones equivalentes de las compuertas AND y OR. Se puede producir una forma a partir de la otra intercambiando AND y OR. La ley de Morgan sugiere una notación alternativa. muchas de las reglas del álgebra ordinaria se conservan en el álgebra de Boole. por medio de burbujas de inversión. La ley de Morgan se extiende a más variables. la propiedad de absorción y la forma AND de la propiedad distributiva. utilizando la propiedad distributiva. Aunque aún no se ha hablado de ello. Además de la equivalencia. Como dos funciones son equivalentes si y sólo si dan la misma salida para todas las entradas posibles. En particular. que servirá para construir el nuevo circuito. el circuito de la figura 3-5(b) es claramente mejor que el de la figura 3-5(a) porque contiene menos compuertas. una compuerta OR con las entradas invertidas es equivalente a una compuerta NAND. En la figura 3-5(b) aparece el circuito y la tabla de verdad de A(B + C). a partir de la forma dual de la ley de Morgan. ABC = A + B + C. Así. 41 . Exceptuadas las leyes de Morgan. La figura 3-6 muestra las más importantes. que se muestran en la figura 3-5(a). En general. En la figura 3.

Las variables A y B pueden generarse a partir de A y B usando compuertas NAND o NOR con sus entradas conectadas entre sí. es decir. usando la figura 3. Para convertirlo a forma NAND. Nótese que las burbujas de inversión pueden moverse por una línea a voluntad. denominado lógica positiva. la tabla de verdad que obtendremos será la de la figura 3-9(c). Si adoptamos la convención de que 0 volts es un 0 lógico y de que 5 volts es un 1 lógico. Finalmente. 42 . si adoptamos la convención de lógica negativa. Antes de dar por terminado el tema de la equivalencia entre circuitos. En la figura 3-9(a) se muestra la salida de cierta compuerta. aquella en que 0 volts representan el 1 lógico y 5 volts el 0 lógico. se hace mucho más fácil convertir la representación de la suma de productos de la tabla de verdad en una forma con sólo compuertas NANO o sólo compuertas NOR. se demostrará el hecho sorprendente de que una misma compuerta física puede calcular funciones diferentes conforme a las convenciones utilizadas.Usando las identidades de la figura 3-7 y las análogas para las compuertas de varias entradas. correspondiente a la función OR. deben dibujarse dos burbujas de inversión en cada una de las líneas que conectan las compuertas ANO con la compuerta OR. Para ilustrar lo anterior consideremos la función OR EXCLUSIVO de la figura 3-8(a). llegamos a la figura 3-8(d). por ejemplo. Tanto las entradas como las salidas se dan en volts. F. obtendremos la tabla de verdad de la figura 3-9(b) y la función AND. como se muestra en la figura 3-8(c). Por el contrario. El circuito como suma de productos se muestra en la figura 3-8(b). para diferentes combinaciones de entrada.7(a). de las salidas de las compuertas de entrada de la figura 3-8(d) a las entradas de la compuerta de salida.

así como 0 lógico. la convención empleada para asignar valores lógicos a las tensiones es de suma importancia. falso y bajo. si no se dice lo contrario utilizaremos lógica positiva.Por tanto. 43 . de modo que los términos 1 lógico. cierto y alto serán sinónimos. En adelante.

20. 18. A lo largo de sus bordes mayores se sitúan dos filas paralelas de patas metálicas de unos 5 mm de largo. chips o pastillas. Cada pata se conecta a una entrada o a una salida de alguna compuerta de la pastilla. confundiendo así la distinción entre la pieza de silicio y su envoltorio. Actualmente ya no se construyen los circuitos compuerta por compuerta. Circuitos integrados Las compuertas no se fabrican ni se venden individualmente. 40. Hoy día. Las cápsulas con dos filas de patas fuera y una pastilla dentro reciben el nombre técnico de DIP (siglas inglesas que significan encapsulado de dos hileras en línea). sino en unidades llamadas circuitos integrados. pero a veces útil. según se describe abajo. SSI (circuitos integrados a escala pequeña): 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): más de 100 000 Estas clases tienen propiedades diferentes y se usan de manera distinta. En las secciones siguientes se examinarán esos elementos básicos en detalle y se verán cómo se usan y cómo pueden construirse a partir de compuertas individuales. la 44 . Un circuito SSI suele contener de dos a seis compuertas. Cada una de ellas tiene dos entradas y una salida. con base en el número de compuertas que contienen. lo que implica la necesidad de 12 patas para las cuatro. Este esquema de clasificación es en extremo burdo. anteriores. La figura 3-10 ilustra una pastilla SSI típica que contiene cuatro compuertas NAND. 16. 28. Normalmente las pastillas se montan en unas cápsulas cerámicas o de plástico de 5 a 15 mm de ancho y de 20 a 50 mm de largo. pero todo el mundo las llama pastillas. aunque antaño fue práctica común. En algunas aplicaciones especiales se utilizan cápsulas con patas en los cuatro lados. como se hizo en las secciones.CIRCUITOS DIGITALES BÁSICOS En las secciones anteriores se vio cómo realizar tablas de verdad por medio de circuitos con compuertas individuales.64 o 68 patas. cada una de las cuales puede usarse individualmente. 22. Las cápsulas más usuales tienen 14. a la corriente eléctrica o a tierra. Las pastillas pueden dividirse en varios grupos. los elementos básicos son módulos que contienen cierto número de compuertas. que pueden insertarse en soportes o soldarse a circuitos impresos. Una pastilla es un pedazo de silicio cuadrangular de unos 5 x 5 mm en el que se han depositado algunas compuertas. Además. 24. El limite superior de los circuitos VLSI se encuentra entre 1 y 2 millones de transistores.

Pertenecen a la serie 7400. de tecnología TTL. denotada Vcc) y tierra. el circuito impreso donde se montaran debería tener pistas metálicas conectando las patas apropiadas. El circuito de la figura 3-3(b) podría construirse con una 7404. normalmente no se muestran ni la alimentación ni la tierra ni las compuertas no utilizadas. 45 . La pastilla 7486 contiene una compuerta que no se ha mostrado hasta ahora. Esto puede representarse simbólicamente por la expresión A + B + C + D = (A + B)+(C + D). dos 7411 y una 7432. es la puerta OR EXCLUSIVO. A y B hacen el OR juntos al igual que C y D por su parte. Algunas compuertas no se usarían. haciendo el OR de los dos resultados anteriores. con lo que se facilita su identificación. y estas dos sumas hacen el OR también a su vez. el OR de las otras dos por el otro y. que son compartidas por todas las compuertas. pero puede obtenerse la misma función haciendo el OR de dos entradas por un lado. es decir. desarrollada por Texas Instruments y producida por muchos fabricantes de semiconductores.pastilla necesita alimentación (por lo general 5 volts. Se utilizan principalmente para construir circuitos sencillos que no podrían realizarse de otra manera. que es equivalente al circuito de la figura 3-8. La figura 3-11 muestra otras pastillas SSI comunes. En la serie 7400 no hay compuertas OR de cuatro entradas. Generalmente la cápsula tiene una muesca cerca de la pata 1. Para evitar que los diagramas de circuitos se enmarañen. de nuevo. Si el circuito de la figura 3-3(b) se construyera realmente de esta manera.

La serie 74COO es de pastillas CMOS funcionalmente equivalentes a las de la serie 7400. Hoy día es posible poner casi un millón de compuertas en una pastilla.Para nuestros propósitos. en el sentido de que la salida aparece en el mismo momento en que se aplican las entradas. 74HOO y 74LSOO. pero con diferentes compromisos de retardo. que incluye el tiempo de propagación de la señal a través del circuito y el tiempo de conmutación. En realidad. de tecnología TTL. potencia y precio. En los esquemas suelen verse números como 74S00. Los retardos suelen durar de 1 a 20 nanoseg. 74LOO. Representan pastillas funcionalmente equivalentes. las pastillas tienen un retardo de compuerta finito. Como todo 46 . todas las compuertas serán ideales.

Por desgracia. En esta sección. Está claro que. de modo que las salidas estén determinadas únicamente por el valor instantáneo de las entradas. Con el espaciado ordinario de 2. Independientemente de los valores de las líneas de control. Multiplexores En el nivel de lógica digital. La figura 3-12 muestra un esquema de un multiplexor de ocho entradas. Después examinaremos dos aplicaciones que requieren miles de compuertas (LSI) con sólo 20 a 40 patas: memorias y microprocesadores. dicha pastilla necesitaría 3 000 002 patas. pero una pastilla VLSI clásica puede tener un microprocesador grande. hay que diseñar circuitos cuyo cociente de compuertas/patas sea muy alto.2 kilómetros. La línea divisoria entre los circuitos LSI y los VLSI es vaga. No todos los circuitos tienen esa propiedad. Estos circuitos se llaman circuitos combinacionales. cabría pensar que un fabricante puede fabricar una pastilla muy general con el equivalente a 250 000 pastillas como la 7400. siete de las compuertas. Las tres líneas de control. un circuito que contenga elementos de memoria puede generar salidas que dependan tanto de los valores de entrada como de los almacenados. como la de la figura 3-3(a). AND siempre darán una salida 0. 47 . Cada combinación de las entradas de control permite el paso de información por una sola de las compuertas AND. una unidad de propósito específico. A. B y C. codifican un número de 3 bits que específica qué línea de las ocho de entrada pasa a la compuerta OR y de ahí a la salida. la otra puede dar 0 o 1. la pastilla debería medir cerca de 3. como ejemplo de pastillas MSI. examinaremos algunos circuitos combinacionales usados con frecuencia. algo muy difícil de vender. una salida de datos y n entradas de control que seleccionan una de las entradas de datos.5 mm entre patas. Por ejemplo. En las secciones siguientes examinaremos algunos circuitos MSI sencillos que combinan internamente cierto número de compuertas para obtener una función útil con sólo unas pocas conexiones externas (patas). Circuitos combinacionales Muchas aplicaciones de la lógica digital requieren un circuito de varias entradas y varias salidas. Un ejemplo típico de circuito combinacional es uno que realice una tabla de verdad. un multiplexor es un circuito de 2n entradas de datos. según sea el valor de la línea de entrada que se seleccione. algo de memoria en una u otra forma. y quizá. como la unidad aritmética de punto flotante.circuito puede construirse con puertas NAND. El dato de entrada seleccionado es el que aparece en la salida. para poder aprovechar la tecnología.

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

independientemente de las entradas (esto es. 49 . El uso típico de un convertidor de paralelo a serie es en un teclado. y algunos tienen también una entrada adicional que fuerza la salida a 0. una pata de habilitación o deshabilitación). Otra de sus aplicaciones es la de convertidor de paralelo a serie. Este circuito se llama un decodificador y la figura 3-14 ilustra uno de ellos para n = 3. aparecerán en la salida los 8 bits de la entrada en serie. se genera un número de 7 u 8 bits que debe enviarse en serie por una línea telefónica. El circuito MSI de la figura 3-13(a) tiene ocho entradas de datos. según sean los valores de n líneas de control. Si se pone un dato de 8 bits en las líneas de entrada y se van variando las líneas de control en forma secuencial desde 000 hasta 111 (en binario). para poner a 1) exactamente una de sus 2n salidas posibles. El inverso del multiplexor es el demultiplexor. Algunos de ellos proporcionan la salida seleccionada y su complemento. Si el valor binario situado en las líneas de control es k.Ya se vio cómo se puede usar una pastilla multiplexora para seleccionar una entrada entre varias y para realizar una tabla de verdad. donde cada vez que se pulsa una tecla. que encamina una única entrada a una de las 2n salidas posibles. Decodificadores Otro ejemplo de pastilla MSI es un circuito que toma un número de n bits como entrada y los usa para seleccionar (es decir. También los hay en el mercado de 16. así como pastillas con dos multiplexores independientes de cuatro entradas o con cuatro de dos. se selecciona la salida k.

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

Comparadores Otra pastilla MSI muy útil es el comparador. El comparador sencillo de la figura 3-15 toma dos entradas. que dará 0 si las palabras son iguales y 1 si son diferentes. haciendo un total de 24 señales de entrada. Una pastilla muy general para realizar sumas de productos es el arreglo lógico programable ( designado también por sus siglas inglesas PLA). Las pastillas disponibles comercialmente no sólo tienen salidas para A = E. Si las dos palabras son iguales. En nuestro ejemplo hemos usado una compuerta NOR en la etapa final para invertir el sentido de la comparación:1 significa igual y 0 desigual. cada una de 4 bits. Cada línea de entrada a las 50 compuertas AND contiene un fusible. Internamente se genera el complemento de cada una de ella. El corazón del circuito lo forma un conjunto de 50 compuertas AND cada una de las cua1es puede tener como entrada cualquier subconjunto de las 24 señales de entrada. El circuito está basado en la compuerta OR EXCLUSIVO. Arreglos (matrices) lógicos programables Se vio antes que podían construirse funciones arbitrarias (tablas de verdad) calculando los términos producto con puertas AND y pasando todos éstos por una compuerta OR. que compara dos palabras de entrada. que da 0 si las entradas son iguales y 1 si son distintas. 51 . Esta pastilla. las cuatro compuertas OR EXCLUSIVO deben dar 0. A y B. y produce un I1si son iguales y 0 si son distintas. sino también para A<B y para A>B. la 74S330. tiene líneas de entrada para 12 variables. que se muestra en la figura 3-16. El usuario determina qué entrada va a qué compuerta AND por medio de una matriz de 24 x 50. Después se pueden pasar estas cuatro salidas por una compuerta OR.

Para las más complicadas. Para funciones sencillas. cuatro de sus 50 compuertas AND y una de sus 6 compuertas OR. correspondientes a las salidas de las 50 compuertas AND. y ABC. respectivamente. lo que hace un total de 20 patas. ABC. La pastilla tiene 12 patas de entrada y 6 de salida. esta vez de 50 x 6. ABC. además de la alimentación y la tierra. Tiene tres entradas. Aquí hay también otra matriz. mientras que la compuerta OR debe tomar estos cuatro términos para calcular la salida. se puede usar la misma PLA para que calcule simultáneamente hasta cuatro funciones de complejidad similar. cuatro compuertas AND. el número está limitado por el número de variables de entrada.) De hecho. (Las cuatro compuertas AND deben calcular ABC. usando tres de sus 12 entradas. una compuerta OR y tres inversores. el usuario funde los fusibles que desee aplicando una tensión alta a la pastilla. la limitación dependerá probablemente del número de compuertas AND u OR. Para ilustrar con un ejemplo el uso de una PLA. La parte de salida del circuito consta de 6 compuertas OR de 50 entradas. Para programar la matriz. consideremos una vez más el circuito de la figura 3-3(b).Estos 1200 fusibles vienen intactos de fábrica. Aunque las PLA programables descritas todavía están en uso para muchas 52 . Nuestra PLA puede calcular esta función con sólo hacer las conexiones internas apropiadas. por medio de la cual el usuario determina qué conexiones realizar.

.aplicaciones. si se necesitan muchas funciones. Evidentemente. después veremos cómo pueden construirse sumadores. el corrimiento es a la izquierda. El dato de 8 bits se presenta en las entradas D0. a la derecha. en otras son preferibles las PLA hechas "a medida" para cierto cliente (para aplicaciones de gran volumen) y fabricadas bajo las especificaciones del cliente. Registros de corrimiento Nuestro primer circuito MSI aritmético es un registro de corrimiento de 8 entradas y 8 salidas (véase figura 3-17). necesitamos cuatro pastillas. podríamos usar la cuarta parte de una pastilla PLA. determina el sentido del desplazamiento: si es 0. Ahora podemos comparar los tres métodos que ya hemos visto y que sirven para implementar la tabla de verdad de la figura 3-3(a).. Como la compuerta AND derecha está conectada a la entrada de la compuerta OR de su derecha. pasando el bit correspondiente a su salida. el método más eficiente de los tres es la PLA. se obtiene un desplazamiento a la derecha.S7. y finalmente examinaremos las unidades aritméticas y lógicas. También nos bastaría una pastilla multiplexora MSI. 53 .. si es 1. Empezaremos por un sencillo registro de corrimiento. Estas PLA son más baratas que las programables.. efectuándose un desplazamiento a la izquierda. D7 y se obtiene desplazando un bit en las salidas S0. como se muestra en la figura 3-13(b).. es preferible utilizar pastillas más baratas como las SSI o las MSI. Cuando C = 1. Cuando C = 0. Circuitos aritméticos Es el momento de pasar de los MSI de uso general a los aritméticos. obsérvense los pares de compuertas AND para todos los bits excepto los de los bordes. se abre la compuerta derecha de cada par. . Usando componentes SSI. La línea de control C. Para circuitos simples.. Por último. que desempeñan un importante papel en cualquier computadora. Para ver cómo funciona. . el que se abre es el miembro de la izquierda del par de compuertas AND.

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

sólo se permitirá el paso a través de una de las compuertas AND que están conectadas a la puerta OR.. sumar 1 a 111. Normalmente las frecuencias de los pulsos están entre 1 y 100 MHz. cada uno de los cuales procesa el par de bits de mismo peso de cada una de las palabras de entrada. OR y suma de dos palabras de máquina. muchos circuitos digitales utilizan relojes para su sincronización.Para construir un sumador de. al menos. correspondientes a ciclos de reloj entre 1000 nseg a 10 nseg. La esquina superior izquierda tiene la lógica para calcular A AND B. El intervalo entre los flancos de subida o bajada de dos pulsos consecutivos se llama tiempo de ciclo del reloj. no puede obtenerse el resultado hasta que el acarreo se haya propagado desde el bit de la derecha al de la izquierda. 01. Puede calcular una de las cuatro funciones siguientes: A AND B. porque es probable que varios de. Algunas veces un evento debe preceder a otro. denominado Unidad Aritmética y Lógica o ALU. las operaciones AND. según las líneas de selección de función. También existen sumadores que no tienen este retardo y. estos circuitos se conecten en paralelo para realizar las operaciones sobre la palabra completa. Este tipo de sumador se llama sumador con propagación de acarreo. palabras de 16 bits. La figura 3-21 muestra un ALU de 1 bit. teniendo en cuenta los acarreos. digamos. el orden en que tienen un lugar los eventos es crítico. Para permitir a los diseñadores satisfacer las relaciones de tiempo. y se les conoce como rebanadas de un bit. para obtener una gran precisión. Uno de estos circuitos para procesar dos palabras de n bits suele construirse a partir de n circuitos idénticos. El acarreo de salida de uno de ellos se usa como acarreo de entrada del siguiente. mientras que otros deben realizarse simultáneamente. A OR B.. Un reloj en este contexto. independientemente de A y B. es necesario repetir 16 veces el circuito de la figura 3-19(b). El acarreo de entrada al de la derecha se deja conectado a 0. por tanto. Relojes En muchas computadoras digitales.111 (binario). 55 . que contengan (en binario) 00. Como sólo una de las salidas del decodificador estará a 1. La figura 3-20 es un ejemplo de uno de esos circuitos. dependiendo de las líneas de habilitación que vienen del decodificador. La frecuencia del reloj suele controlarse por medio de un oscilador a cristal. La esquina inferior izquierda de nuestra ALU contiene un decodificador de 2 bits que genera las líneas de habilitación para las cuatro operaciones a partir de F 0 y F1. debido a que en el último de los casos. Unidades aritméticas y lógicas La mayoría de las computadoras tienen un circuito único para realizar. es un circuito que emite una serie de impulsos de un ancho y una separación determinadas con precisión. son más rápidos. Existen circuitos que contienen módulos de 8 bits para simplificar el diseño y reducir el número de circuitos. 10 o 11. B. o A + B. F0 y F1. respectivamente. las tres restantes darán 0. Para construir un ALU de 32 bits se pueden conectar cuatro de estos circuitos. pero a lo sumo uno de estos resultados puede pasar a la compuerta OR final. Con estos circuitos el diseñador puede construir ALU del tamaño deseado. La esquina inferior derecha tiene un sumador completo para calcular la suma de A y B. Existen circuitos como el de la figura 3-20. A OR B y B.

En una computadora pueden suceder muchas cosas durante un solo ciclo de reloj. Flanco de subida de REL1 2. Si tuvieran que realizarse esos eventos en un orden especifico. sería necesario dividir el ciclo de reloj en subciclos. Un método bastante común de obtener una resolución más fina que la del reloj básico consiste en conectar a la línea del reloj un circuito con un retardo conocido. Flanco de subida de REL2 4. 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 bajada de REL1 3. generando así un segundo reloj desfasado respecto al principal. Flanco de bajada de REL2 56 .

o los estados altos de ambos relojes pueden traslaparse parcialmente en el tiempo. El circuito de la figura 3-23(a) se llama biestable SR. Se pueden construir circuitos análogos con compuertas NAND. empezando al nivel de compuertas para ver como funcionan y como se combinan para obtener memorias grandes. También tiene dos salidas. puede permitirse que un evento suceda cada vez que REL1 esté alto. y R. Como nota al margen. es necesario un circuito que "recuerde" sus valores de entrada anteriores. Al final se pasan A y B por una compuerta AND para obtener REL. En este último caso se pueden distinguir cuatro diferentes intervalos: REL1 Y REL2 . Biestables Para crear una memoria de un bit. probablemente debamos puntualizar que la figuras 3-22(a)-(b) están realmente algo simplificadas. obteniéndose B. pueden proporcionarse más líneas de reloj. REL1 Y REL2 y REL1 Y REL2. Se usa para guardar las instrucciones a ejecutar y sus datos. Para generar un tren de impulsos asimétricos. REL2 puede generarse retrasando REL1. para ponerlo a 1. que son 57 . En algunos circuitos uno se interesa más por los intervalos de tiempo que por instantes discretos de tiempo. Los relojes reales son simétricos. REL1 Y REL2. como se ve en la figura 3-23(a). Si se necesitan más de dos intervalos. Q y Q.Puede obtenerse la secuencia de sucesos deseada asociándolos a los diversos flancos. Si se necesitaran más de cuatro referencias de tiempo durante un ciclo. Otro evento puede ocurrir sólo cuando REL2 esté alto. en lugar de que ocurra precisamente en el flanco de subida. Esta es la señal mostrada como REL1 en la figura 3-22(b). para ponerlo a 0. como la señal A en la figura 3-22(c). Tiene dos entradas. se podrían añadir más líneas con retardos diferentes. En las secciones siguientes examinaremos los componentes básicos de una memoria. ya que son conceptualmente idénticos a las versiones NOR. Sin ella no podría haber computadoras como las conocemos. se desplaza el reloj básico por medio de un circuito de retardo. Un circuito así puede construirse con dos compuertas NOR. S. Por ejemplo. con la duración del intervalo alto igual a la del intervalo bajo. No los mencionaremos en adelante. MEMORIA Un componente esencial de toda computadora es su memoria.

que es realimentada a la compuerta inferior. dependiendo de Q. que llamaremos 0 o 1. lo cual ocurre casi siempre. obteniéndose Q = 0. además. Q = 0. cuando S se pone a 1 momentáneamente. Este estado es. El poner la entrada R a 1 cuando el estado es 0 no tiene efecto. de ser cierto esto. Por tanto. consistente y es el dibujado en la figura 3-23(a). el biestable termina en el estado 1. es fácil ver que si se pone S a 1 en el estado 1 nada ocurre. sin tomar en cuenta el estado en que estuvo antes. Las entradas a la compuerta superior son 0 y 1. En resumen. supongamos que S y R están en 0. está a 1. forzando una salida de 1. Q (negado). En contraste con los circuitos combinacionales. La compuerta superior tiene 1 y 0 como entradas y una salida. obteniéndose 0 y no 1. Este estado. 58 . ya que la salida de la compuerta inferior es la misma con entradas 10 que con 11. porque forzaría las entradas a 0 y 1. el hacer S igual al 1 conmuta del estado 0 al 1. por lo menos. Supongamos que S se hace 1 mientras Q = 0. Como Q está realimentada a la compuerta NOR de arriba. porque forzaría a ambas compuertas a tener dos ceros como entradas. Imaginemos ahora que Q no es 0 sino 1. De modo similar. Para ver cómo sucede esto. Q(negado). Esta propiedad puede emplearse para construir memorias de computadora. Este cambio hace que ambas entradas de la compuerta inferior sean 0. también es consistente. es imposible que ambas salidas sean iguales a 1. Nuestra conclusión es simple: si R = S = 0. estando todavía R y S a 0. el biestable pasa a estado 0. de 0. pero si se pone R a 1. forzando una salida de 0. Un estado con ambas salidas a 0 es inconsistente. produciría unos y no ceros como salidas. como veremos en breve. que se muestra en la figura 3-23(b). el biestable tiene dos estados estables.complementarias. Este 1 es realimentado a la puerta de abajo. Examinemos ahora el efecto de las entradas en el estado del biestable. el biestable se coloca en estado 0. ésta tiene ambas entradas a 0. por lo que su salida. que tiene entradas 1 y 0. Con un razonamiento similar. las salidas del biestable no están determinadas únicamente por los valores instantáneos de las entradas. El circuito "recuerda" si la última entrada que estuvo a 1 fue R o S. cuando R se pone momentáneamente a 1. Supongamos que. De modo similar.

hay que enviar un impulso positivo por la línea de reloj. Con el reloj a 0 ambas compuertas AND dan 0. el bienestar se situaría al azar en cualquiera de sus estados estables. es una verdadera memoria de un bit. Así . Se denominan flip-flops o biestables accionados por flanco. Si ambas entradas se pusieran a 0 simultáneamente (lo que es muy improbable). se suele decir que el biestable está habilitado o activado. sino durante la transición de 0 a 1 o de 1 a 0. Cuando D = 1 y el reloj esté a 1. Para cargar el valor actual de D en memoria. nunca se presentará el problema de ambas a 1. Biestables D sincronizados Una forma de resolver la ambigüedad de los biestables SR es estar seguros de que no ocurrirá. En la práctica. se muestreará el valor actual de D y se guardará en el biestable. Este circuito tiene una entrada adicional. es decir. El valor almacenado está siempre disponible en Q. Hasta ahora hemos esquivado cuidadosamente el problema de lo que sucede cuando tanto S como R son 1 a la vez. y en ellos la transición tiene lugar no cuando el reloj es 1. puede ser difícil la generación de impulsos muy cortos. gana la que esté más tiempo a 1. Cuando la señal de reloj está a 1. ya que durante ese pequeño instante hay una sola entrada a 1 y fuerza el estado correspondiente. cuando el reloj esté a 1. esto se podría hacer con un biestable D sincronizado. El único estado consistente para S = R = 1 es Q = Q = 0. Para conseguirlo. Cuando el reloj es 1.Bieslables SR sincronizados A menudo es conveniente impedir que un biestable cambie de estado excepto en ciertos momentos específicos. Un flip-flop se dispara por flanco mientras que un biestable se dispara por nivel. el efecto de las puertas Y desaparece y el biestable se hace sensible a S y a R. obteniéndose un biestable SR sincronizado. la señal de reloj no tiene por qué estar manejada por un reloj. el biestable pasará a estado 1. Es necesario tener 59 . Y por una buena razón: el circuito se vuelve no determinista cuando R y S vuelven a 0. siempre que las transiciones ocurran con rapidez. D. mandando un impulso muy corto por la línea de reloj en el momento de muestrear. modificamos ligeramente el circuito. Como la entrada a la compuerta AND inferior es siempre el complemento de la entrada a la superior. Es importante insistir en la diferencia entre un flip-flop y un biestable. denominado biestable D sincronizado. el biestable puede ponerse en cualquiera de los dos estados estables. que es sensible a S y a R. pero tan pronto como las entradas vuelven a 0. Este circuito. por lo que se ha desarrollado un tipo distinto de biestables. y el biestable no cambia de estado. A pesar de su nombre. En principio. La figura 3-25 muestra un biestable con una sola entrada. el reloj. Dicho de otro modo. como se muestra en la Figura 3-24. Cuando D = 0 y el reloj esté a 1 también. independientemente de S y R. el biestable pasará a 0 lógico. la duración del impulso de reloj no tiene importancia. Flip-flops y registros En muchos circuitos es necesario muestrear el valor de cierta línea en un instante determinado y almacenarlo. Si alguna de las entradas vuelve a 0 antes que la otra. que normalmente está a 0.

mientras que la figura 3-26(d) lo cambia con el de bajada (transición de 1 a 0). A éstos no sólo les faltan las líneas Q y de puesta a 1. lo que es bastante más complejo que las sencillas pastillas SSI de la figura 3-11. la explicación es que una señal de entrada quizá no pueda atacar los ocho biestables y se usa el inversor de entrada como amplificador. Aunque están en el mismo chip de 14 patas. La figura 3-26(c) cambia su estado con el flanco de subida de reloj (transición de 0 a 1). 60 . Se utiliza como un registro de 8 bits. es 1. Es evidente que la razón por la cual se juntan las líneas de reloj y borrado en la figura 3-27(b) es ahorrar patas. necesitará 57. La figura 3-27(b) muestra una disposición algo diferente. con dos biestables D independientes con señales de borrado (CLR) y puesta a 1 (OR). En la siguiente sección estudiaremos una organización distinta de las pastillas de memoria. CK. que permita un cociente compuertas/patas mucho mayor. Muchos biestables tienen además la salida Q y algunas entradas de Puesta a 1 y de Puesta a 0 o Borrado. muchos autores usan flip-flop para referirse a biestables y viceversa. En la figura 3-27 (a) se muestra una de las más simples. ambos flipflops son independientes. pues en la literatura técnica a menudo se confunden los términos. Un flip-flop es más complejo internamente que un biestable accionado por nivel. incluyendo los ocho inversores para CK y los ocho para CLR. Se verá con más detalle el uso de los registros en el capitulo 4. con ocho flip-flops. mientras que el de la figura 326(b) tiene en forma normal el reloj a 1 y hay que bajarlo a 0 momentáneamente para tomar el estado de D. por lo que la figura 3-27(b) representa el equivalente a unas 100 puertas. sino que además todas sus entradas de reloj están juntas y conectadas a la pata 11. vamos viendo que la escasez de patas lleva al diseño de pastillas con un cociente compuertas/patas cada vez mayor. Las figuras 3-26(c) y (d) son flip-flops. La figura 3-26(a) representa un biestable D accionado por nivel. también pueden usarse dos de estas pastillas para realizar un registro de 16 bits conectando entre si las patas 1 y 11 respectivas. Los símbolos utilizados normalmente para los biestables disparados por nivel y por flanco se muestran en la figura 3-26. 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 señal CK. por lo que una pastilla con ocho de ellos. pero esto lleva a que el uso a que se puede destinar la pastilla sea distinto del que tendrían ocho flip-flops independientes. distinguiéndose de los anteriores por el símbolo puntiagudo de las entradas de reloj. El sencillo biestable D de la figura 3-25 requiere cinco compuertas. Pero las burbujas de inversión se cancelan con el inversor conectado a la pata 11. También todas las señales de borrado están conectadas. por lo cual si la pata 1 se pone a 0 fuerza a todos los biestables a ponerse a 0. Así. cuyo estado se guarda cuando el reloj. análoga a la de la figura 3-27(b).cuidado. por lo que se cargan con el flanco de subida. Registros Los flip-flops están disponibles en varias configuraciones. A medida que avanzamos. Cada uno de ellos es del tipo de la figura 3-26(d).

En principio. 61 . Tiene ocho líneas de entrada y tres de salida. DE1 y DE2. Aunque a primera vista la memoria de la figura 3-28 parece complicada. y tres de control: CS para seleccionar la pastilla. Este ejemplo ilustra una memoria de cuatro palabras de tres bits. De las de entrada. en realidad es bastante simple. DS1 y DS2. lo que es más importante. en lugar de hacerlo en forma lineal.Organización de las memorias Aunque hemos progresado desde la simple memoria de 1 bit de la figura 3-25 a la de 8 bits de la figura 3-27(b). dos de dirección: DIR0. necesita menos patas y. podía ponerse esta memoria en un chip de 14 patas. Para construir memorias grandes se requiere una organización distinta. y DIR1. RD para distinguir la lectura de la escritura y OE para permitir la salida. no podemos seguir por este camino. Aunque la capacidad de esta memoria de 12 bits es algo mayor que la de nuestro registro de 8. Cada biestable requiere dos patas. el diseño se generaliza fácilmente para memorias grandes. debido a la falta de patas en las pastillas. Una organización de memorias muy extendida que cumple ese criterio es la de la figura 3-28. tres son de dato: DE0. Cada operación lee o escribe una palabra completa de 3 bits. además de las de control compartidas por todos. debido a su estructura regular. D y Q. incluyendo la alimentación y la tierra. Las líneas de salida son para los datos: DS 0. frente a las 20 del registro de ocho biestables. Lo que se necesita es un diseño en que el número de patas crezca en relación logarítmica con la capacidad de memoria.

En una operación de lectura no se usan las líneas de datos de entrada. etc. en cambio. Examinemos ahora de cerca la figura 3-28 para ver cómo funciona. cargando los datos de entrada en los flip-flops de la misma. En una escritura. así como para poner RD a alto (1 lógico) para leer. Sólo se escribe si CS está en alto y RD en bajo. la línea vertical etiquetada CS-RD estará en alto. según la línea de selección de palabra que esté en alto. La salida de la compuerta de escritura mueve todas las señales CK de la palabra seleccionada.Se necesita una lógica externa que ponga CS en alto para seleccionar la pastilla. las restantes permanecen sin ser alteradas. y sólo en la palabra seleccionada por DIR0 y DIR1. 62 . Los inversores de sus entradas se han ubicado de manera que se habilite (salida en alto) cada una de las compuertas con una dirección distinta. no se usan las líneas de datos de salida. la siguiente hacia abajo para la 1. Las dos líneas de dirección deben ajustarse para que indiquen cuál de las cuatro palabras de tres bits ha de leerse o escribirse. pero se recoge el dato de las de entrada y se guarda en la posición de memoria seleccionada. Cuando se seleccione la pastilla para escritura. habilitando a una de las cuatro compuertas de escritura. o abajo (0 lógico) para escribir. pero en las de salida aparece la palabra seleccionada. la de arriba para la palabra 0. Cada compuerta alimenta una línea de selección de palabra. Las cuatro compuertas AND de selección de palabra de la izquierda forman un decodificador.

una palabra pasa sus datos a las compuertas OR de cuatro entradas de la parte inferior de la figura. pero en las memorias reales son las mismas. por lo que se deshabilitan todas las compuertas de escritura y no se modifica ningún biestable. interfiriendo en esa forma con los datos de entrada. forzar cada línea a un valor especifico. En cambio. Pero ahora la línea CS • RD está en bajo. Si se hubieran conectado las compuertas OR a las líneas de salida. la línea de selección de palabra elegida habilita las compuertas AND conectadas a las salidas Q de la palabra seleccionada. Por esta razón.La lectura es similar a la escritura. La decodificación de direcciones es idéntica. a veces eso causa problemas. es decir. Por tanto. En consecuencia. se ha señalado que las líneas de datos de entrada y de salida son diferentes. es deseable tener algún modo de conectar las compuertas OR con las líneas de datos de salida 63 . la pastilla intentaría sacar datos. Las tres palabras no seleccionadas no contribuyen a la salida. incluso en escritura. la salida de las compuertas OR es idéntica al valor guardado en la palabra seleccionada. mientras que a las otras tres palabras les pasan ceros. Aunque podría haberse diseñado un circuito en que las salidas de las compuertas OR se llevarán directamente a las líneas de salida. En particular.

En los primeros años de la década de los setenta las pastillas tenían 1K bits. Para extenderla a 4 x 8 sólo tendríamos que añadir cinco columnas más de cuatro biestables cada una. A medida que esta tecnología se perfecciona. En la primera. se les usa en circuitos. es decir. RD. Para un tamaño de memoria dado. las salidas de datos se desconectarán del resto del circuito. una salida de dato y una entrada de control. Con esta clase de estructura. la conexión puede restaurarse en pocos nanosegundos volviendo a poner la entrada de control a nivel alto. las memorias son aplicaciones ideales de aquélla. DIR2. consumo. la memoria es de 4 x 3. así como una línea de dirección adicional. Volviendo al circuito de memoria. pero desconectarlas por completo en las escrituras. RD y OE estén en alto.en las lecturas. o OE esté en bajo. la señal de habilitación de salida también estará en alto. por lo que pueden manejar muchas entradas a la vez. a diferencia de lo que ocurre con un cortacables. podemos ahora entender para qué sirven los tres buffers no inversores de las líneas de salida. Lo que necesitamos es un conmutador electrónico que pueda abrir o cerrar una conexión en unos pocos nanosegundos. Tiene una entrada de dato. etc. Sin embargo. Los buffers también amplifican las señales. debido a las interrelaciones entre capacidad. más tarde. se necesitan 15 líneas para direccionar el 64 . Propiedades de las memorias Lo más interesante de la memoria de la figura 3-28 es que se generaliza con facilidad para tamaños mayores. porque pueden dar 0. existen varias formas de organizar la pastilla. como se ve en la figura 3-29(b). Para ir de 4 x 3 a 8 x 3 deberemos añadir cuatro filas más de tres biestables cada una. En 1990 ya eran comunes las memorias con 4 millones de bits. Cuando la entrada de control está a nivel bajo. actúa como un circuito abierto. En la figura 3-30 se aprecian dos posibles organizaciones para una pastilla de tamaño mediano (256K-bit): 32K x 8 y 256K x 1. La figura 3-29(a) muestra el símbolo de lo que se llama un buffer no inversor. Tal como está dibujada. sin embargo. Cuando CS. aumenta el número de bits que pueden meterse en una pastilla. Como la tecnología de circuitos integrados es muy adecuada para hacer pastillas con una estructura interna repetitiva en dos dimensiones. como se muestra en la figura 3-29(c). Cuando la entrada de control está en alto. de 4 palabras de 3 bits cada una. Por esta razón. es como si alguien hubiera desconectado la salida de datos del resto del circuito con cortacables. Por fortuna tales conmutadores existen. habilitando los buffers y poniendo una palabra en las líneas de salida. el número de bits por palabra puede ser cualquiera. tuvieron sucesivamente 4K. cuadruplicándose aproximadamente cada 3 o 4 años. Ambos tipos de buffers son dispositivos triestado. precio y conveniencia de interconexión. el buffer actúa como un hilo eléctrico. que actúa como un inversor normal cuando el control está en alto y desconecta la salida cuando está en bajo. aunque no se necesiten sus propiedades de conmutador. No siempre las pastillas de más capacidad vuelven obsoletas a las de menos. el número de palabras debería ser una potencia de dos. 1 o nada (circuito abierto). 256K. 16K. Cuando cualquiera de las señales CS. velocidad. para que la eficiencia sea máxima. así como cinco líneas de entrada y cinco de salida. La figura 3-29(d) muestra un buffer inversor. 64K.

sean segundos. mientras que usando pastillas de 32K x 8 sólo se requiere de dos pastillas en paralelo y permite construir memorias tan pequeñas como de 64K bytes. Como el cuidado del refresco debe encomendarse a lógica externa. y cuando es 1. La línea OE representa la habilitación de salida. sino que están construidas como un conjunto de pequeños condensadores. dando así gran capacidad y facilidad de conexión a los circuitos. las RAM dinámicas son más difíciles de interconectar que las estáticas. En ambos casos se requiere de líneas para distinguir lecturas de escrituras y para la selección de la pastilla.. Esta convención se verá en detalle más adelante. En muchas aplicaciones. Algunas memorias dinámicas tienen la lógica de refresco en la propia pastilla. Las RAM no son los tarcos tipos de pastillas de memoria. Tienen la propiedad de retener su contenido tanto tiempo como estén conectadas a la fuente de alimentación. 65 . 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. que pueden estar cargados o descargados. por el contrario.g.byte seleccionado y ocho líneas para cargar y almacenar los datos. no usan circuitos biestables como los estudiados. para impedir la pérdida de su información. En la segunda. cuando tiene un valor de 0. Como la carga eléctrica tiende a fugarse. WE y CS significan que la señal está activada en un estado de voltaje bajo (0 lógico) en lugar de alto (1 lógico). cada bit de la RAM dinámica debe refrescarse cada pocos milisegundos. pero el término ya se ha arraigado. Nótese que para construir una memoria con una palabra de memoria de 16 bits a partir de pastillas de 256K x 1. Estas pastillas se denominan casi estatuas. se requiere de 16 pastillas en paralelo obteniendo una capacidad total de por lo menos 512K bytes. pero sólo una línea para sacar los datos. Las barras colocadas sobre OE. Las memorias que hemos estudiado hasta ahora pueden utilizarse para leer o escribir. Hay dos variedades de memorias RAM: las estáticas y las dinámicas Las RAM estáticas se construyen a partir de circuitos similares a nuestro biestable D básico. hay una salida presente. se necesitan 18 líneas para direccionar el bit seleccionado. aunque en muchas aplicaciones esta desventaja está compensada por su mayor capacidad. La línea WE representa la habilitación de escritura. Las RAM dinámicas. minutos. la salida está desconectada del circuito). no la hay (v. horas o aun días.

la que la hace apropiada para el nivel de la lógica digital que se estudia. en cierta medida. que no pueden cambiarse de ninguna manera. MICROPROCESADORES Y BUSES Con la información acerca de las pastillas de memoria en sus diferentes escalas de integración. electrodomésticos y automóviles. Las patas de una pastilla de microprocesador pueden dividirse en tres tipos: dirección. los programas y parte de los datos deben permanecer aun cuando se desconecte la alimentación. También se proporcionará una introducción al diseño de buses. Si se espera hacer muchos cambios en el ciclo de diseños las EPROM son mucho más económicas que las PROM porque pueden reutilizarse. Aún mejores que las EPROM son las EEPROM (EPROM eléctricamente borrables) también llamadas EAROM (ROM eléctricamente alterables). los microprocesadores. que consiste esencialmente en la exposición a la luz de un material fotosensible a través de una máscara con la configuración deseada de bits. excepto en que puede programarse (una sola vez) reduciendo así el plazo en que pueden tenerse grabadas. Para facilitar a las empresas el desarrollo de productos basados en ROM se inventó otro tipo de memoria muerta denominado PROM (ROM programable) Esta pastilla es como una ROM. se aprende cómo interacciona la CPU con la memoria y los dispositivos de E/S al nivel de lógica digital. Después se disuelve la parte expuesta a la luz (o la no expuesta) La única manera de cambiar un programa en ROM es sustituir la pastilla por otra. que pueden borrarse mediante impulsos eléctricos. Se decidió tratar las CPU de una sola pastilla por una buena razón: su relación con el resto del sistema se encuentra bien definida. Algunas patas envían señales de la CPU. aun cuando algunas de ellas tengan la arquitectura y el poder de cómputo de pequeñas macrocomputadoras. una vez instalados. que no sólo puede programarse sino también borrarse. a través de las cuales se establece su relación con el mundo exterior. Si se entiende la función de cada una de las patas. Una pastilla de microprocesador típica tiene entre 40 y 132 patas. cómo la CPU hace referencia a la memoria. cómo se conectan los dispositivos de E/S. aunque de una manera algo diferente. ya que no pueden cambiarse después de su fabricación y el plazo de entrega desde que se encargan hasta que se reciben puede abarcar varias semanas. Esta definición está basada en el empacado de componentes. incluyendo el significado de las señales asociadas a cada terminal. etc. se puede abordar ahora el tema principal de este capítulo. para amortizar el precio de hacer la máscara.como juguetes. Estos requisitos llevaron al desarrollo de las memorias fijas o ROM (siglas inglesas para memoria de sólo lectura). Microprocesadores Para los fines de este libro. se usará el término "microprocesador" para denominar a cualquier CPU contenida en una sola pastilla. 66 . ni el programa ni esos datos van a cambiarse nunca. Las EEPROM difieren de las RAM en que el tiempo necesario para grabar o borrar un byte es miles de veces mayor. en virtud de la estrecha relación que existe entre éstos y algunos microprocesadores y se darán ejemplos detallados de ambos en las siguientes secciones. Sin embargo son inflexibles. EEPROM y RAM son similares (al máximo unas centenas de nanosegundos). los programas. sin necesidad de que las introduzcan en un receptáculo especial para exponerlas a luz ultravioleta. El siguiente avance en esta tinca fue la EPROM (PROM borrable). En esta sección se verán algunos de los aspectos generales de los microprocesadores desde el punto de vista de la lógica digital. Aunque lo que sigue se refiere específicamente a los microprocesadores. Además. Cuando la ventana de cuarzo de una EPROM se expone a luz ultravioleta potente durante unos 15 minutos. Los datos se graban durante la fabricación de la ROM. todos sus bits se ponen a 1. Las ROM son mucho más baratas quejas RAM cuando se piden en grandes cantidades. las ideas básicas (por ejemplo. otras aceptan señales del exterior y algunas realizan ambas funciones. para las macrocomputadoras.) también son válidas para las minicomputadoras y. PROM. a pasar de que los tiempos de acceso en lectura de las ROM.

las patas de control pueden agruparse grosso modo en las siguientes categorías principales: 1. ésta se produce por una señal baja. Interrupciones 3.datos y control. Señalamiento al coprocesador 5. Para leer una palabra de 32 bits. No es posible realizar otro tipo de comunicación. Control del bus 2. para indicar que una señal tiene un valor para provocar alguna acción diremos que está activada (en vez de decir que tiene un valor alto o bajo). en tanto que WRITE está activada bajo. acepta la palabra y lleva a cabo la instrucción. tierra física y para la señal de reloj (una onda cuadrada). Cuando no ocurre ninguna acción en particular. Las patas de control del bus son en su mayoría salidas del microprocesador hacia el bus (o sea entradas para las pastillas de memoria y de entrada/salida). Además de las patas de dirección y datos. Valores comunes para m son: 16. el resto de las patas varía mucho dependiendo de la pastilla. mientras que para otras significa que tomen un valor bajo. así como otras varias funciones. No obstante. por ejemplo para verificar si hubo algún error de E/S. La instrucción puede requerir a su vez leer o escribir palabras de datos. Más adelante se verá cómo funcionan la lectura y la escritura. indicando la acción que desea realizar. Las patas de interrupción son entradas de los dispositivos de entrada/salida al microprocesador. están 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 instrucción. Estas. Estados 6. Cabe hacer aquí una aclaración en cuanto a la terminología. el microprocesador pone primero la dirección de memoria de dicha instrucción en las patas de direccionamiento. cada microprocesador tiene algunas patas de control. en cuyo caso se repite todo el proceso para cada palabra adicional. Así. En forma similar. Las patas que son activadas cuando el valor es bajo se les asignan nombres con una barra encima. Dos parámetros clave que determinan el desempeño de un microprocesador son el número de patas de direccionamiento y el número de patas de datos. la pastilla controladora de entrada/salida activa una señal en una de estas patas para interrumpir ala CPU para que atienda al dispositivo. Los valores comunes para n son: 8. A fin de evitar confusiones. Arbitraje del bus 4. mientras que uno con 32 patas lo puede hacer en una sola operación. De esta manera. La memoria responde poniendo la palabra solicitada en las patas de datos del microprocesador y activando una señal que indica que lo hizo. En la mayoría de los sistemas. En seguida (por lo general). 24 y 32. Algunos microprocesadores tienen una pata de salida para reconocer la señal de interrupción. el microprocesador puede indicar a estos lentos dispositivos que inicien su operación y después dedicarse a algo más útil mientras éstos trabajan. aunque también invariablemente más caro. lo importante es entender que la CPU se comunica con la memoria y con los dispositivos periféricos presentando y aceptando señales a través de sus patas. Todo microprocesador tiene terminales para alimentación (normalmente + 5 V). 20. las cuales sirven para regular los tiempos y el flujo de los datos desde y hacia el microprocesador. en algunos casos activar las señales significa darles un valor alto. Una pastilla con m patas de direccionamiento puede direccionar hasta 2m bytes de memoria. por el momento. En la figura 3-31 se muestran estos grupos de señales de manera general para una pastilla de CPU. una señal alta (+5 volts) provoca que se realice una acción. En algunas patas. 67 . WRITE está activada alto. Varios A continuación se describirá cada una de estas categorías y se proporcionarán más detalles cuando se describan más adelante las pastillas de lntel y de Motorola. pero. De ahí que este último sea mucho más rápido. Cuando el microprocesador observa esta señal. Cuando termina la operación de E/S. una pastilla con n patas de datos puede leer o escribir en una sola operación palabras de memoria de n bits. 16 y 32. en otros. El término opuesto es desactivado y se usa para indicar ausencia de acción. un microprocesador de 8 patas de datos requiere de cuatro operaciones. activa la línea de control para informar a la memoria que desea leer una palabra. se dice que las patas están desactivadas o negadas.

Unibus (PDP-11). Microchannel (PS/2). Estas reglas se denominan protocolo del bus. VAX). las cuales deben ser obedecidas por todos los dispositivos conectados al mismo. otros sirven para reinicializar la computadora o para asegurar la compatibilidad con pastillas de E/S de versiones anteriores.Para regular el tráfico en el bus. Nubus (Macintosh II). se necesitan las patas de arbitraje del bus. debe haber reglas bien definidas del funcionamiento de éste. Versabus (Motorola) y 68 . Mientras que dentro de la pastilla los diseñadores de microprocesadores tienen la libertad de usar cualquier clase de bus. pero también pueden ser pastillas de gráficos u otras. que en su mayoría son unidades aritméticas de punto flotante. S-I00 (Computadoras recreativas). Omnibus (PDP-8). Más aún. En las publicaciones. Qbus (LSI-ll ). tanto físicamente como en términos de voltaje. Asimismo. SBI (VAX-11/780). IBM PC y PC/AT (computadoras personales). Algunos de los más conocidos incluyendo ejemplos entre paréntesis son: Camac (física nuclear). a efecto de que las tarjetas diseñadas por terceras personas puedan conectarse al bus del sistema. como se ilustra en la figura 3-32. Multibus II (80386). Multibus I (8086). Muchas pastillas están diseñadas para operar junto con coprocesadores. con conectores espaciados a intervalos regulares para conectar tarjetas de memoria y de entrada/salida. Massbus (PDP-11. algunos microprocesadores tienen otras patas para funciones varias. Algunos de éstos proporcionan o aceptan información sobre el estado del microprocesador. Para facilitar la comunicación entre el microprocesador y el coprocesador se incluyen patas especiales para realizar y autorizar diversas solicitudes. Buses de computadora Un bus es una ruta eléctrica común entre múltiples dispositivos. los buses se dibujan en ocasiones como flechas gruesas tal como en esta figura. el cual consiste de 50 a 100 alambres de cobre paralelos grabados en la tarjeta matriz. Un ejemplo común es el bus del sistema presente en toda microcomputadora. Además de estas señales. Fastbus (física de alta energía). Megabus (Honeywell). Además. se considera a la CPU como un dispositivo. a fin de evitar que dos dispositivos pretendan utilizarlo al mismo tiempo. debe haber especificaciones mecánicas y eléctricas para que las tarjetas diseñadas por terceros se ajusten al gabinete de tarjetas j tengan los conectores necesarios para acoplarse a la tarjeta matriz. Para los fines de arbitraje. los buses se pueden dedicar a fines especiales como conectar una pastilla de microprocesador a uno ovarios coprocesadores o memorias locales. EISA (80386). dentro de la misma pastilla del microprocesador puede haber varios buses para conectar sus componentes internos. Una gran variedad de buses existen diseminados en el mundo de la computación.

mientras que otros están en estado pasivo aguardando solicitudes. Probablemente. bajo ninguna circunstancia. A los dispositivos activos se les llama maestros mientras que a los pasivos se les denomina esclavos. Cuando la CPU ordena leer o escribir un bloque aun controlador de discos. la estandarización en esta área parece poco probable en virtud de las inversiones existentes en todos estos sistemas incompatibles. se utiliza una pastilla combinada llamada transmisor-receptor del bus. en especial si éste es relativamente largo o tiene muchos dispositivos conectados.VME (680xO). éste sería un mundo si todos estos buses con excepción de uno. Por esto la mayoría de los dispositivos maestros se conectan al bus a través de una pastilla denominada manejador del bus. Para los dispositivos que pueden actuar ya sea como maestros o esclavos. Sin embargo. En la figura 3-33 se listan varias de las combinaciones típicas entre dispositivos maestros y esclavos. Algunos dispositivos conectados al bus se encuentran en estado activo y pueden iniciar transferencias. desaparecieran. los dispositivos esclavos se conectan por medio de un receptor del bus. Por desgracia. actuar como dispositivo maestro. ésta actúa como dispositivo maestro y el controlador como esclavo. La memoria no puede. que es en esencia un amplificador digital. A menudo las señales binarias que emiten los dispositivos no son la suficientemente fuertes para activar el bus. el controlador puede actuar más adelante como dispositivo maestro. al indicar a la memoria que acepte las palabras que lee de la unidad de disco. 69 . En forma parecida. A continuación se estudiará el funcionamiento de los buses.

mientras que otras que requieren de las propiedades del O-alambrado. Por ejemplo. que puedan ser manejadas por las líneas del bus. el mecanismo de arbitraje. sin embargo no es necesario que haya una correspondencia de 1 al entre las señales de ambos. Otros aspectos relevantes en el diseño de buses (además del número de direcciones y líneas de datos) son: la sincronización del bus. Por lo tanto. En las secciones siguientes se abordarán estos puntos con mayor detalle. 70 . Por su parte. Un bus síncrono tiene una línea manejada por un oscilador de cristal. con el que se logra un efecto similar. el resultado es el O-Booleano para todas las señales. un bus también tiene líneas de direcciones. un bus típico tendrá una línea para lectura de memoria. más adelante. comenzando por la sincronización. El otro tipo de bus. Como en un microprocesador. La señal de esta línea consiste en una onda cuadrada con una frecuencia que varía entre 5 y 50 MHz. denominados ciclos del bus. se requiere de una pastilla decodificadora entre la CPU y dicho bus para convertir la señal codificada de tres bits en señales separadas. una tercera para lectura de E/S. Todas las actividades del bus se realizan en un número entero de estos ciclos. o estar conectados de cierto modo diferente llamado colector abierto. Todos ellos tienen un impacto significativo en la velocidad y en la amplitud de banda del bus. A esta configuración se le conoce por lo regular con el nombre de O-alambrado. a fin de permitirles flotar (desconectarse) cuando no son necesarios. una cuarta para escritura de E/S y así sucesivamente. Ambas categorías serán examinadas en su oportunidad. algunos microprocesadores tienen tres patas que codifican las operaciones que se están realizando. como lectura o escritura de la memoria o de entrada/salida. Cuando dos o más dispositivos en una línea de colector abierto activan la línea al mismo tiempo. los buses pueden clasificarse en dos distintas categorías. son del tipo colector abierto. el manejo de interrupciones y el manejo de errores.Estas pastillas de interfaz son a menudo dispositivos triestado. 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. otra para escritura de memoria. de datos y de control. Buses síncronos Dependiendo de los ciclos de tiempo. el bus asíncrono no tiene un reloj maestro. En la mayoría de los buses algunas de las líneas son del tipo triestado.

el sombreado que precede al cruce. el cual da un ciclo del bus de 250nseg. considérense los diagramas de tiempo de la figura 3-34(a). en cambio se presenta como dos líneas que se cruzan al momento en que la dirección cambia. o sea un total de 750 nseg desde el inicio del ciclo T 1 hasta el final del ciclo T3. MREQ y RD se activan una vez que las líneas de dirección han tenido tiempo para asentar sus nuevos valores. Poco después de iniciado T 1. la CPU pone la dirección del byte deseado en las líneas de direcciones. en el que se usará un reloj de 4 MHz. En el ejemplo se asume que toma 10 nseg cambiar una señal. 71 . indica que su valor no es importante. Como la dirección no consta de un solo valor. Se asumirá además. como en el caso del reloj no puede mostrarse con un solo trazo. El comienzo de T1 se define por el flanco ascendente de reloj.Como un ejemplo de funcionamiento de un bus síncrono. podemos observar que el contenido de las líneas de datos no es significativa hasta bien adentrado T3. Más aún. MREQ y RD se muestran en la misma escala de tiempo. Utilizando esta misma convención de sombreado. Nótese que ninguna de las líneas ascendentes o descendentes han sido dibujadas en forma vertical en virtud de que ninguna señal eléctrica puede cambiar su valor en un tiempo de cero. que la lectura de un byte de memoria toma tres ciclos del bus. MREQ indica que la memoria (y no un dispositivo de E/S) está siendo accesada y RD se usa para distinguir las operaciones de lectura de las de escritura. datos. Tanto las líneas de reloj como de direcciones.

el diseñador del microcomputador no deberá elegir un chip de memoria que requiera de establecimiento de 75 nseg antes de MREQ . Este tiempo puede ser importante si MREQ se conecta a la selección del circuito de memoria. TRDIR por ejemplo. TMDAT dice cuánto tiempo debe mantener la memoria el dato en el bus después de desactivar RD. No obstante. para darle tiempo de estabilizarse antes de ser leídas por la CPU. Evidentemente. La combinación de las restricciones en TRDIR y TEDAT significa que. la pastilla de memoria tendrá sólo 250 + 250 . la CPU desactiva MREQ y RD. en el intervalo de tiempo. En el flanco descendente del reloj. en el peor de los casos. Otra forma de hacer más rápido al bus consiste en acortar el ciclo. Si la memoria no pudiera responder tan rápido deberá activar ESPERA antes del flanco de bajada de T 2. por ejemplo. la memoria tendrá sólo 250 + 250 + 125 -110 -50 = 465 nseg desde el momento en que aparecen las direcciones hasta que deba entregar el dato. sin embargo. poniendo el número de bytes en la línea de datos durante T1. el bus esclavo envía un byte durante cada ciclo hasta agotar el número indicado. Corresponde a los diseñadores del bus determinar cuál es más conveniente. Con un reloj de 8 MHz. no sucede nada durante T2. En la especificación de tiempos de la figura 3-34(b). Finalmente. la memoria puede retirar los datos del bus tan pronto como se desactive RD. Sin embargo. El último punto a tratar es si las señales de control deben activarse altas o bajas.33 Mbytes/seg.Para dar tiempo a la memoria para decodificar la dirección y poner los datos en el bus. lo que significa que el fabricante de la pastilla garantiza que durante cualquier ciclo de lectura de operandos. Además de los ciclos de lectura (y escritura). algunos buses síncronos manejan transferencias en bloque. Por lo que concierne a la CPU del ejemplo. Esta restricción se añade a la referente a la dirección. En vez de regresar sólo un byte. TRDIR 110 nseg. el tiempo de ciclo se reduciría a la mitad y se podrían alcanzar 2. La especificación de tiempo garantiza que la dirección estará presente al menos 60 nseg antes de que se active MREQ. entre el flanco ascendente del reloj en T 1 y el establecimiento de las líneas de dirección. se muestra de manera más clara el significado de los ocho símbolos que aparecen en el cronograma. acortar el ciclo del bus puede conducir a problemas de ingeniería. En el ejemplo. ya que algunas memorias requieren que la dirección esté estable antes de su selección. En caso necesario puede iniciarse otro ciclo de memoria en el siguiente flanco ascendente del reloj. la lectura de un bloque de n bytes tomaría n + 2 ciclos en lugar de 3n.50 = 365 nseg desde la activación de MREQ y RD hasta tener el dato en el bus. Cuando se inicia la lectura de un bloque el bus maestro indica al esclavo cuantos bytes van a transferirse. TPMA y TLA dicen cuánto tardan en negarse MREQ y RD después de haberse muestreado el dato. En los diagramas de tiempos también se requiere que los datos estén disponibles por lo menos 50 nseg antes del flanco descendente de T3.67 Mbytes/seg. En el caso peor. en algunos microprocesadores los datos deben permanecer estables un poco más de tiempo. Resulta esencial que la distorsión y el tiempo del ciclo sean comparables duraderamente a fin de evitar que los intervalos de tiempo digitalizados terminen en un ciclo de tiempo análogo. Una vez leídos los datos. la CPU pondrá la dirección a ser leída dentro de los 110 nseg siguientes al punto medio del flanco ascendente del reloj en T1. Esta acción insertará estados de espera (ciclos extra del bus) hasta que la memoria termine y desactive ESPERA. la CPU lee las líneas de datos y almacena su valor en un registro interno. La restricción en TRPM y en TLB significa que MREQ y RD deben activarse antes de 85 nseg después del flanco de bajada del reloj en T1. pero la elección 72 . que es cuando se muestrea. se transfiere un byte cada 750 nseg con una amplitud de banda máxima de 1. No todas las señales en las diversas líneas viajarían exactamente a la misma velocidad creando un efecto llamado distorsión del bus. muestra una buena imagen de como funciona un bus síncrono.85 . En este ejemplo. En la práctica. De acuerdo con la especificación de tiempos. Cabe señalar que la figura 3-34 representa una versión muy simplificada de las restricciones reales en la especificación de tiempos. se señalan siempre muchos más tiempos crítico.

Por un lado. un bus sin reloj maestro. Puede manejarse una tecnología mixta utilizando un bus asíncrono. en esencia. Cuando el dispositivo esclavo ve esta señal realiza su trabajo tan rápido como puede. así como también provoca que el esclavo active SINE. RD y SINM. Suponga por ejemplo que algunos años después de construido el sistema de la figura 3-34. En los cronogramas de buses asíncronos (y en ocasiones también en los de síncronos) se utilizan flechas para indicar causa y efectos como en la figura 3-35. resulta difícil aprovechar las ventajas de mejoras futuras de la tecnología. 73 . En vez de que todo esté "amarrado" al reloj. el bus debe ajustarse al más lento impidiendo que los más rápidos utilicen todo su potencial. así que desactiva SINE. activa entonces una señal especial llamada SINM (SINcronización Maestra). activar esta última señal. como el que se muestra en la figura 3-35. ya que el protocolo del bus requiere que la memoria active las líneas de datos justo antes del flanco descendente de T3. también presentan algunos problemas. Peor aún. correrían a la misma velocidad que el anterior. Tan pronto como el maestro ve activada la señal SINE sabe que los datos están disponibles de modo que los almacena en un registro interno y desactiva las líneas de direcciones lo mismo que MREQ. deben ampliarla a 4. Aun cuando pudieran usarse. Activar SINM ocasiona que se activen las líneas de datos. cuando el bus maestro ha activado las señales de dirección. arbitraria. regresando a la situación original. de la elección de un programador para representar como ceros o unos a los bloques libres de disco en un mapa de bits. conduce a desactivar las líneas de direcciones. algunos rápidos y otros lentos. 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. activando al terminar la señal SINE (SINcronización Esclava). MREQ. Por otro lado. RD y cualquier otra que necesite. todo el trabajo se realiza en múltiples enteros del reloj del bus.es.0 ya que los ciclos fraccionados están prohibidos. si un bus tiene conectado un grupo heterogéneo de dispositivos. esto es.1 ciclos. A su vez. aparecen nuevas CPU y memoria con ciclos de tiempo de 100 nseg en vez de 250 nseg. A su vez. Esta cuestión puede verse como el equivalente en el hardware. BUSES ASINCRONOS Aun cuando es fácil trabajar con buses síncronos debido a sus intervalos de tiempo discretos. sabe que el ciclo se ha completado. Si una CPU y una memoria particular son capaces de completar una transferencia en 3. con todas las señales desactivadas y aguardando el siguiente ciclo. cuando el esclavo observa desactivada la señal SINM.

y no por un impulso de reloj. Debe quedar claro que la sincronización completa es independiente de los ciclos de tiempo. pero si los componentes se han seleccionado adecuadamente. La CPU sólo activa sus señales y la memoria sólo reacciona a éstas. En este esquema. Este tipo de mecanismo puede ser centralizado o descentralizado. Cada paso se provoca por un paso previo. No hay forma de que el árbitro sepa cuántos dispositivos han solicitado el bus. Muchos microprocesadores contienen el árbitro integrado en la pastilla de CPU. se necesita de algún mecanismo de arbitraje del bus.MREQ. Se activa SINE en respuesta a SINM. los coprocesadores pueden convertirse en maestros del bus. cuya parte esencial consta de cuatro pasos: 1. Con esto deben quedar claras las ventajas de los buses asíncronos. el trabajo se desarrollará de manera correcta sin necesidad de sincronización. un solo árbitro del bus determina qué dispositivo tiene acceso. El bus contiene una línea de solicitud que puede ser activada por uno o más dispositivos en cualquier momento (funciona como un O-alambrado). Se desactiva SINM en respuesta a SINE. 3. pero el hecho es que la mayoría de los buses son síncronos por la razón de que es más fácil construir sistemas síncronos. Arbitraje del bus Hasta ahora hemos asumido en forma tácita que sólo hay un bus maestro: la CPU. De ahí que surja la siguiente pregunta: " ¿Qué sucede si dos o más dispositivos desean actuar como bus maestros al mismo tiempo?" La respuesta es que para evitar el caos. 4. Asimismo. terminando así la lectura. Se activa SINM. Las únicas categorías que pueden distinguirse son: existe(n) solicitud(es) y no existe solicitud. Se desactiva SINE en respuesta a la desactivación de SINM. que en forma sencilla se muestra en la figura 3-36(a). Al conjunto de señales enlazadas de esta forma se le denomina sincronización completa o bidireccional. también las pastillas de entrada/salida pueden actuar como maestros para lecturas y escrituras de memoria así como para provocar interrupciones. de ninguna manera afecta a otra posterior que sea mucho más rápida. Se verá primero el arbitraje centralizado. desactivar SINM causa la desactivación de SINE. 2. RD y finalmente. pero en sistemas de minicomputadoras es a veces un dispositivo separado. En realidad. 74 . Si una pareja maestro-esclavo en particular es lenta. No hay retroalimentación (causa y efecto).

Cuando el dispositivo que se encuentra físicamente más cerca del árbitro recibe la señal. y tiene la propiedad de que los dispositivos poseen. prioridades asignadas dependiendo de qué tan cerca se encuentren del árbitro. ya que éstas no pueden solicitar esta línea. línea que es activada por el dispositivo cuando acepta una línea de respuesta y ocupa el bus. Tan pronto como se activa esta línea de reconocimiento. A fin de evitar las prioridades implícitas basadas en la distancia del árbitro. pueden desactivarse las líneas de solicitud y de respuesta. 75 . Si varios niveles de prioridad solicitan el bus al mismo tiempo. Entre los dispositivos con la misma prioridad se utiliza el encadenamiento margarita. la señal se propaga al siguiente dispositivo en la línea. A este esquema se le denomina encadenamiento margarita. Algunos árbitros tienen una tercera. como en una serie de foquitos de navidad. Para cada nivel existe una línea de solicitud y una línea de respuesta. Si este dispositivo no fue quien originó la solicitud. autoriza su uso activando la línea de respuesta del bus. éste al 5 que a su vez supera al dispositivo 1. El bus que se muestra en la figura 3-36(b) tiene dos niveles. el que actúa en la misma forma y así sucesivamente hasta que algún dispositivo acepte la señal y haga uso del bus. 4 y 5 usan prioridad 2. verifica si fue él quien hizo la solicitud. mientras que los dispositivos 3. Cada dispositivo está conectado a alguno de los niveles de solicitud del bus. En la figura 3-36(b) los dispositivos 1 y 2 utilizan el nivel de prioridad 1. el árbitro concede su uso sólo al de prioridad más alta. El dispositivo más cercano tiene la prioridad más alta. Al margen puede comentarse que técnicamente no es necesario conectar en serie la línea de respuesta del nivel 2 a través de los dispositivos 1 y 2. Dicha línea está conectada en serie a través de todos los dispositivos de entrada/salida.Cuando el árbitro recibe una solicitud para el bus. 1 y 2 (en la práctica los buses tienen 4. resulta más fácil conectar todas las líneas de respuesta a todos los dispositivos. en caso de conflicto el dispositivo 3 supera al 4. con aquellos que tienen tiempos más críticos conectados a las líneas con prioridades más altas. pero por conveniencia en la implantación. Como resultado. en efecto. algunos buses tienen múltiples niveles de prioridad. El dispositivo 2 tiene la prioridad más baja porque se encuentra al final de la cadena con menor prioridad. 8 o 16 niveles). en cuyo caso hace uso del bus y evita que la señal se siga propagando. En la figura 3-36(b). en lugar de hacer conexiones especiales que dependan de qué dispositivo tiene cuál prioridad.

este diseño limita el número de dispositivos a 16. mostrado en la figura 3-37. el siguiente maestro del bus ya habrá sido seleccionado y pueden iniciar su operación tan pronto como se desactive la línea de reconocimiento en el momento que empieza la siguiente ronda de arbitraje. Otro tipo de arbitraje del bus descentralizado se usa en el Multibus. Además. las pastillas de Motorola y de la PDP-11 utilizan este sistema. es una práctica común usar una palabra de memoria para proteger estructuras de datos compartidos. Si esta palabra es 0. Cuando ningún dispositivo requiere del bus. Cuando termine la transferencia actual. el dispositivo checa primero si éste está ocioso y si la señal de arbitraje ENT que recibe está activa. Todos los dispositivos monitorean todas las líneas de solicitud. Al final. el dispositivo desactiva SAL que es la señal que requiere el resto de los dispositivos en la línea para desactivar ENT y SAL. En sistemas de multiproceso. con la excepción de que no tiene árbitro. el bus SBI de la VAX tiene 16 líneas priorizadas de solicitud del bus. si podrá usar el bus durante el siguiente. comparado con el arbitraje centralizado requiere de un mayor número de líneas de bus. La primera línea del bus es una línea de O-alámbrico para solicitar el bus. se puede apreciar que el dispositivo colocado más hacia la izquierda en la cadena que requiera el bus es el que lo obtiene. La segunda denominada BUSY es activada por el bus maestro correspondiente. Un último punto acerca del arbitraje se refiere a las operaciones de ciclo múltiples. pero se le asigna la prioridad más baja y sólo puede ocupar el bus cuando nadie más lo usa. Cuando alguno de ellos desea utilizar el bus. de modo que es más barato. sólo un dispositivo tendrá activada ENT y desactivada SAL. un procesador puede asignarle el valor de 1 y utilizar la estructura de datos. Si la palabra ya tiene el valor 1. La punta de esta cadena se conecta a la fuente de poder de 5 volts. La tercera se usa para el arbitraje del bus y atraviesa todos los dispositivos mediante encadenamiento margarita. Para hacer uso del bus. con lo que se convierte en maestro del bus. Por ejemplo. si ENT está activa. Poniendo un poco de atención. activa las líneas BUSY y SAL e inicia su transferencia. activa su línea de solicitud. rápido y no está sujeto a fallas del árbitro.otros dispositivos pueden solicitar el bus mientras que el primero lo está utilizando. Este esquema requiere de una línea extra de bus así como más componentes lógicos en los dispositivos. Este esquema. Este método. los discos girando a altas velocidades no pueden esperar . Cuando se utiliza el arbitraje del bus descentralizado no existe un árbitro. manteniendo la línea activa. cada dispositivo sabe si tiene la prioridad más alta y de ahí. la CPU puede también competir por el bus. sólo usa tres líneas sin importar cuantos dispositivos haya. pero evita el costo potencial del árbitro. el Multibus ofrece también arbitraje centralizado así que los diseñadores del sistema pueden elegir. Entre otras. De ahí que este esquema sea similar al arbitraje de encadenamiento margarita. si no lo está no puede convertirse en maestro del bus. Aquí la idea es que la CPU puede esperar mientras que los dispositivos de entrada/salida deben obtener el uso del bus rápido o pierden los datos que están recibiendo. la línea activa de arbitraje se propaga a través de todos los dispositivos. pero hace un uso más eficiente de los ciclos del bus. el procesador deberá aguardar a que el procesador que esté usando la estructura termine 76 . de modo que al final de cada ciclo de bus. En muchos sistemas. Sin embargo.

Cuando esta última está en 77 . Cuando alguno de estos dispositivos desea realizar una interrupción. la 8259A activa a su vez la señal INT (INTerrupción). Manejo de interrupciones Hasta ahora sólo se han abordado los ciclos ordinarios del bus. Esta regla permite al procesador original la posibilidad de realizar múltiples ciclos del bus sin interferencia. Existen en el mercado pastillas estándar para el control de interrupciones y su uso está muy extendido. El procesador A lee la palabra xy observa que tiene un valor de 0 (ciclo 0 del bus). La solución usual es asignar prioridades a los dispositivos. algunas CPU tienen una instrucción que lee una palabra de memoria y si es 0 le da el valor de 1. con un maestro que lee o escribe en un esclavo. activa su línea de entrada. Cuando una o más de estas líneas está activa. LOCK. ya que es posible que varios dispositivos quieran enviar una interrupción al mismo tiempo. 2. la cual maneja directamente la pata de interrupción de la CPU. Aquí se presenta el mismo tipo de problemas que con los ciclos del bus ordinario. El problema con dicha instrucción es que requiere de dos ciclos del bus. El procesador B lee la palabra xy observa que tiene un valor de 0 (ciclo 1 del bus). originando un caos. no permite a ningún otro procesador convertirse en maestro del bus hasta que sea desactivada. La señal de interrupción indica que requiere del bus. Las IBM-PC. El procesador A escribe un 1 en la palabra x (ciclo 2 del bus). Si esta secuencia ocurriera. habría dos procesadores pensando cada uno al mismo tiempo que tiene acceso exclusivo a la estructura de datos compartida. que pueda activarse al inicio de dicha instrucción. PC/ AT . En la siguiente secuencia de pasos se muestra una situación en donde las cosas no salen bien: 1. En los buses que no tienen esta característica. Existe una pequeña pero real posibilidad de que un segundo procesador se meta entre la lectura y la escritura causando estragos. Cuando la CPU instruye a algún dispositivo de entrada/salida para que haga algo. El procesador B escribe un 1 en la palabra x (ciclo 3 del bus). Una vez activada. se pueden conectar en forma directa hasta 8 pastillas controladoras de entrada/salida. por lo general espera una interrupción cuando termine el trabajo. En las entradas de Solicitud de Interrupción (SIx) de la 8259A. 3. PS/2 y todo sus clones (IBM-PC compatibles) usan una pastilla Intel 8259A como la que se ilustra en la figura 3-38. uno para leer y otro para escribir. La solución a este problema es agregar una línea extra al bus. 4. Para prevenir esta situación. Otro uso importante del bus es el manejo de interrupciones. resulta difícil construir un sistema de multiproceso que funcione de manera correcta.asignando a la palabra nuevamente el valor de 0. y usar un árbitro centralizado para dar prioridad a aquellos que tengan los tiempos más críticos.

La 8259A tiene varias patas para controlar el encadenamiento. a menos que tenga otra interrupción pendiente también puede escribirse en estos registros para cambiar el modo de operación de la 8259A. En este punto. el material anterior debe proporcionar los elementos suficientes para entender las bases de como funcionan y su interacción con los microprocesadores. permitiendo hasta 64 dispositivos de E/S en una red de interrupciones de dos etapas. 1984 puede encontrarse más información al respecto. Dentro de la 8259A existen diversos registros en los cuales puede leer o escribir la CPU usando ciclos ordinarios del bus y las patas A0. para encontrar la dirección del procedimiento a ejecutar para atender esa interrupción. Ahora se pasará de lo general a lo particular y se verán algunos ejemplos de microprocesadores actuales y sus buses. WR (Escritura) y CS (Selección de Pastilla). Entonces. las cuales se han omitido en la figura para mayor simplicidad. En las obras de Borrill. Una vez que el software ha manejado la interrupción y está listo para la siguiente. cada una de las 8 entradas se pueden conectar a las salidas de 8 pastillas 8259A. la pastilla controladora deberá especificar qué dispositivo causó la interrupción. enmascarar una serie de interrupciones o habilitar otras características. En el caso más extremo. envía un impulso ala 8259A en INT A (INTerrupción Recibida). 78 . 1985 y Gustavson. el hardware de la CPU utiliza dicho número como índice en una tabla de apuntadores denominados vectores de interrupción. escribe una clave especial en unos de estos registros. RD (Lectura).disposición de manejar la interrupción. colocando el número de éste en el bus de datos. Aunque de ninguna manera hemos agotado el tema de diseño del bus. lo que provoca que la 8259A desactive INTR. Cuando existen más de 8 dispositivos de E/S se puede encadenar varias pastillas 8259A.

CONCLUSIÓN 79 .

BOLILLA II (Parte 2): EL NIVEL DE MICROPROGRAMACIÓN 80 .

............................................................................................................................................................................................................................................................................................13 Computadora y Circuitos:..........................................................................................................................................................................................................................................................................................................................................................19 Dispositivos de E/S..35 Algebra booleana...........................................................................................................................................................................................................................................................................................................................................................35 COMPUERTAS Y ALGEBRA BOOLEANA............................................................................................................................................23 Introducción: ............................................................................................................................................................................................................................................22 SISTEMA OPERATIVO........................................21 TIPOS DE CANALES:...........................22 Spoll: .............................................................................................................................................................15 Unidad aritmético-lógica:.......................................................................15 Periféricos: ...............................................................................25 BOLILLA II (Parte 1): EL NIVEL DE LOGICA DIGITAL.......................................................34 EL NIVEL DE LOGICA DIGITAL...............................................................................................14 HARDWARE Y SOFTWARE: ................................................................................20 Canales de e/s...........................................................................22 Multipexor por bloques: ........................................................16 Buses síncronos y asíncronos: ......................................................................................................................................24 CONCLUSIÓN...........................................................................20 TECNOLOGÍA DE CANALES:...........................................26 INDICE..............................................................................................................................15 Núcleo de la computadora: ...........................................13 CONCEPTO:.............................................................................4 INDICE....................15 Memoria:(Memoria Central)......19 Manejo de interrupciones:..............5 INTRODUCCIÓN.............................................................................................27 INTRODUCCIÓN......................................15 Arquitectura .................................................Componentes Básicos:.............................................................................................18 Arbitraje del bus:.............................................................37 Implementación de funciones booleanas .....................................INDICE INDICE GENERAL.....12 LA COMPUTADORA........15 Unidad de Control:.............................................15 BUSES DE COMPUTADORAS:....................................................23 ¿QUÉ ES UN SISTEMA OPERATIVO?..................................................14 Al software se lo clasifica en dos grupos: ................................19 Solicitud del Bus.....................................................................................................................................................................................................................................................................21 Multiplexor: .........................................................38 81 ..........................................35 Compuertas.....................................................................................................................................................................................................................................................................................14 Software: .............................................................14 Hardware:...........21 Selector....................................................................................................................................................19 Ejemplo de encadenamiento margarita:.........................................13 Para qué sirve una computadora?:...............................................................................................................................13 FUNCIONES Y ACCIONES:.................................................................................................................................................................................................................................................................................................................................1 BOLILLA I: LA COMPUTADORA..........................................

...........................................................................................66 Buses de computadora..........................................................................................55 MEMORIA.....................................92 Unidades aritméticas y lógicas y registros de corrimiento ............................57 Bieslables SR sincronizados.................................................55 Relojes ..................54 Unidades aritméticas y lógicas.....................................94 Encapsulado de los componentes ...............................96 La ruta de datos .......59 Flip-flops y registros.......................103 Pilas .........................................................................44 Circuitos integrados ...........47 Decodificadores ...........................................................................................................................77 CONCLUSIÓN..................................90 Multiplexores y decodificadores ..................................................................79 BOLILLA II (Parte 2): EL NIVEL DE MICROPROGRAMACIÓN.............................................................................................................................................................................68 Buses síncronos ................................................................................................................................................................................................................................51 Circuitos aritméticos.57 Biestables...............................................................................................60 Organización de las memorias.........103 82 ......................................................................................................................................100 Secuenciamiento de las microinstrucciones .......95 UNA MICROARQUITECTURA TIPICA ...................................................................................................................................40 CIRCUITOS DIGITALES BÁSICOS.................................................................................................61 Propiedades de las memorias...................................................................................74 Manejo de interrupciones .....................................................................................................................................................................................................................................................53 Registros de corrimiento............................................................................................................................................................................................93 Memoria principal ............47 Multiplexores ...........................................................................................................90 Buses ..................................................................................................................96 Microinstrucciones ................................................................................................................................................................................................................................................................................................................................80 INDICE........................................................................................................................................................................................................................................................................................................................53 Sumadores ...................................................................................................66 Microprocesadores .........................89 REPASO SOBRE EL NIVEL DE LÓGICA DIGITAL .................................................................................................................................................................................................44 Circuitos combinacionales ...........................73 Arbitraje del bus .....................................................................................................................Equivalencia entre circuitos.......................................................................................................................................................................................49 Comparadores .............................................................................................................................................................................................................................................................................81 INTRODUCCIÓN......................................................................................................................51 Arreglos (matrices) lógicos programables .............92 Relojes ..........................................64 MICROPROCESADORES y BUSES.........102 UNA MACROARQUITECTURA TIPICA ......................................................................................................................................................88 EL NIVEL DE MICROPROGRAMACIÓN ............................................................................................................................................................................................................................................70 BUSES ASINCRONOS.....................................................................59 Biestables D sincronizados.......90 Registros .........98 Cronología de las microinstrucciones .............................................................................................59 Registros...................................................................................................................

..............................................................................................................................................................................................................................................................................135 INDICE...............................................................................................................................................................................................................166 Control de iteraciones ..................................................................................................................................................................................................................179 83 ................107 MICROPROGRAMACIÓN: UN EJEMPLO ....................149 Direccionamiento..............149 La PDP-11......................................149 Direccionamiento inmediato.............................................................................................................174 Corrutinas ...............................................114 EL DISEÑO DEL NIVEL DE MICROPROGRAMACIÓN ..........................................................................................................160 Tipos de Instrucciones ...............................................................................................................................................................................................................................................................................150 Direccionamiento de registros.......................................................................................................................................................................................115 Nanoprogramación .............................................................................................160 Direccionamiento en la PDP-11...........................157 Algoritmo.......................................................161 Operaciones unarias ..................................................................................................136 INTRODUCCIÓN............................................................168 Flujo De Control .............................................................................123 Memoria caché ............................................................160 Instrucciones de movimiento de datos ......................................................................................................................147 Ejemplos de formatos de instrucciones........157 Ejemplos de direccionamiento...............................................................................................................................................................................................................111 Observaciones sobre el microprograma ......................................151 Direccionamiento indirecto...........151 Indexación..................................................................................................................................................................110 El lenguaje micro ensamblador .....................................................153 Notación polaca inversa..............................................................150 Direccionamiento directo.................................................................................................................................................................................................155 Evaluación de fórmulas en la notación polaca inversa.........................................145 Criterios de diseño de formatos de instrucción..................144 FORMATOS DE INSTRUCCIÓN.......................................................122 Mejora del rendimiento ...........................134 ...164 Instrucciones de llamada a procedimiento ....................................129 CONCLUSIÓN............................................................................................................................................................................................135 BOLILLA II (Parte 3): EL NIVEL DE MAQUINA CONVENCIONAL..............115 Microprogramación horizontal frente a microprogramación vertical......................................173 Flujo de control secuencial y saltos .........................................................................................................................................................................................................110 El ejemplo de microprograma ............................161 Operaciones binarias ....................................................................................157 Algoritmo................................................................................................173 Procedimientos .........146 Códigos de operación con extensión.....................................................................................162 Comparaciones y Saltos Condicionales.................................................................................................................................................................................................................................143 EL NIVEL DE MÁQUINA CONVENCIONAL.................................................................................................................................................................152 Direccionamiento por medio de pilas...............................................113 Perspectivas ........................El juego de macroinstrucciones ..........................................144 EJEMPLOS DEL NIVEL DE MAQUINA CONVENCIONAL...........167 Entrada / salida ...................................................................

......................................183 ACCIONES DE HARDWARE ..................................................227 PARáMETROS y CARACTERíSTICAS MáS IMPORTANTES DE UNA MEMORIA 228 Capacidad..................210 LAS UNIDADES PERIFÉRICAS ..................................226 CÓDIGOS CORRECTORES DE ERRORES ..........................................................................................................................................................................184 CONCLUSIÓN..........................................................201 ORGANIZACIÓN DE LA CPU ......196 ARQUITECTURA DEL PROCESADOR...........................204 LA UNIDAD DE CONTROL........................214 BOLILLA IV: MEMORIA...............................................207 Caso de almacenamiento del operando: ...........................................................................211 INTERRUPCIONES .....................................................................................................................................197 ESTRUCTURA GENERAL..................................................................................207 Caso de búsqueda del operando...........................................................................................................................................................................................215 INDICE...................Desvios ............................................................................................................................................................209 INSTRUCCIÓN DE RUPTURA DE SECUENCIA .......233 Memorias pasivas..200 EJECUCIÓN DE LAS INSTRUCCIONES ............................................................................................223 MEMoRia ...........................................................................................................................................................................................................................235 Memorias de acceso serie ...................................................................................................................202 LA UNIDAD ARITMÉTICA Y LÓGICA .................................................................................................................................................................................................................................182 Interrupciones ......................239 Modo de direccionamiento indirecto ........................216 INTRODUCCIÓN..............................................................................................231 Pastillas de memoria en paralelo .229 Memorias de acceso aleatorio (RAM = Ramdom Acess Memory) ........189 INTRODUCCIÓN.........................................................................187 BOLILLA III: ARQUITECTURA DEL PROCESADOR......................................................................................................................................238 MODOS DE DIRECCIONAMIENTO ........................................................................................229 Estructura de una RAM semiconductora .................................................................................................................................................................................................236 Memorias asociativas .....................................................................................................................................................................................................188 INDICE....................................................................................................227 CLASIFICACIÓN Y ORGANIZACIÓN DE LAS MEMORIAS ..208 FASE DE PREPARACIÓN DE LA SIGUIENTE INSTRUCCIÓN ......206 FASE DE BÚSQUEDA DE LA INSTRUCCIÓN .........................197 Microprocesadores...........................................................197 DESCRIPCIÓN DE LOS COMPONENTES DE UN PROCESADOR ...........224 DIRECCIONES DE MEMORIA ......................................................................................................................................................................................................................209 EL CANAL....225 ORDENAMIENTO DE BYTES ................................................................................................................................................................................................................................211 CONCLUSIÓN.........................................228 Formas de acceder a las posiciones de memoria ...................................................... seguido de procesamiento: ..............................................................................................................................................................................................................240 84 ..................207 FASE DE BÚSQUEDA O ALMACENAMIENTO DEL OPERANDO ................................................................................................................239 Modo de direccionamiento directo ..............................................183 ACCIONES DE SOFTWARE ....................................................

................258 Afinación de programas ......................................................................................................................294 MOUSE (RATON) ..................296 Ratones Inalámbricos.Modo de direccionamiento relativo .....................................................................................................................................................................................................................................269 Definición............266 La tabla de símbolos ...................................................................................257 Comparación entre el..........................................................................................................................................................................................295 Tipos de ratones......292 INTRODUCCIóN ...................................................................283 INDICE................292 PERlFERICOS DE ENTRADA: ..............................................................284 INTRODUCCIÓN......................................... llamada y expansión de una macro .........................................................................................................................................................................................................................246 INDICE.......................................261 Ensambladores de dos pasadas ...................................................................269 Macros con parámetros .......................................................262 La segunda pasada ............................................... ...................................................................................................................................279 CONCLUSIÓN........................................................................................................................................................296 PANTALLAS TÁCTILES: .........................................................247 INTRODUCCIÓN....................................................277 Enlace dinámico ................................................................................................................................................................................................................................291 PERIFÉRICOS.....................................................267 MACrOS ...............................................................................274 Estructura de un módulo objeto ......................................254 EL NIVEL DEL LENGUAJE ENSAMBLADOR..................................................................256 Formato de una sentencia en lenguaje ensamblador .......246 BOLILLA V: EL NIVEL DEL LENGUAJE ENSAMBLADOR......................................................276 Tiempo de ligadura y reubicación dinámica ...............................245 ...................................................261 La primera pasada ...256 ¿Qué es un lenguaje ensamblador? .............................................................................................................293 Cuidados y advertencias............................271 MONTAJE (LINKING) y CARGA .....................272 Tareas realizadas por el programa ensamblador .................................................................................................243 Otros modos de direccionamiento ................... lenguaje ensamblador y los lenguajes de alto nivel ................................................................................................................................................................242 Modo de direccionamiento por registro indirecto .........................................................................................................................................................................................................................................................296 Ratones Estacionarios.....292 RESEÑA HISTÓRICA...............................................................................................................................................................................................................................................................................................................................................................296 BOLAS GIRATORIAS: ................................................................................................................................................................................271 Implementación de macros en un ensamblador .................................259 EL PROCESO DE ENSAMBLAJE .........................................................240 Modo de direccionamiento indexado ...............................................293 TECLADO: ...............................296 85 ........................................255 INTRODUCCIÓN AL LENGUAJE ENSAMBLADOR .............................................................................282 BOLILLA VI (Parte 1): PERIFÉRICOS..............................................................................................................................................................................................................................................244 CONCLUSIÓN...........................................................................................

...................................................................................................................................................................................309 BOLILLA VI (PARTE 2): TÉCNICAS Y DISPOSITIVOS DE ENTRADA SALIDA............................................................................................................................................ Disco flexible de 5 1/4 pulgadas ............................307 MODEM...................................................................................................................................................................................................302 DVD:...........................................................297 LECTORES DE CODIGO DE BARRA.......................................................................................... ..............300 Facilidad de manejo y almacenamiento.................................................................................................................................................................................305 Impresoras de agujas: .......................................300 Discos opticos: ....................................................................299 Discos flexibles....................................306 Impresoras de inyección de tinta: .............................................. ........................................................................................................308 CONCLUSIÓN.................................................................................................................299 Discos.............................................................................................................................297 Escáner de mano: ....................304 Impresoras...................................................298 LAPIZ OPTICO: .........................................................................297 TABLETA DIGITALIZADORA....................................................................................................................................306 Impresoras térmicas: ....311 86 ...........................................................................................................305 Impresora de Bola: .......................299 Fiabilidad del soporte............................................................296 Profundidad de color......................303 La compresión MPEG-2: ..........................304 PANTALLAS DE SISTEMAINFORMATICO (Monitor): ...................................................296 Tipos de escáner:....297 Ventaja: ..................................................306 Impresoras sin cinta entintadas: ...................................................................................................................307 Como usar la Tecnología 56K ...................................................................................................................................................................................................................297 Desventajas: ..............................................................ESCANER ..........................................................310 INDICE........................................................................................................................................306 PERIFERICOS DE COMUNICACION......................................................................................................................................................................303 El futuro del DVD: ...........303 El disco por dentro: .......297 Desventajas: ................................................................................................................................................................................300 Disco duro.297 Escáner de Sobremesa: ...........307 CONCLUSIóN................... Disco flexible de 3 1/2pulgadas .................................................................................. ..................................................................................................................................................................................................................................................................................................306 Impresoras láser: ...................................................300 1....................................................................................................................300 2................297 Ventajas: ........................306 Impresoras Láser de color: ....................................................................................................................................................................297 Calibración................................................................................................................................................................................................307 Aspectos técnicos.....................................................................................................302 Prestaciones del DVD: ...........................................301 Cintas magneticas: ..........................298 LECTORES DE TARJETAS MAGNETICAS.............305 Impresoras con cinta entintada: ...........................................................................298 PERIFERICOS DE ALMACENAMIENTO: ..................................................................................................................303 PERIFERICOS DE SALIDA: .....................................................................................................................................................................................................................................................297 Escáner de Rodillo:...................................................................

............................................................................323 Impresoras..................................344 87 ......................................................................................338 Transferencia DMA ...........336 Interrupciones (interrupts) ................................................331 Terminales............................................................................................................................................319 Dispositivos de fichas y de banda perforada...............................................................................................................................................................339 GLOSARIO..................................342 CONCLUSIÓN FINAL...............323 Plotter..................................................................343 BIBLIOGRAFÍA .............................330 La pantalla..................................................................................................................................................................................................................................................................INTRODUCCIÓN.............332 Procesos de comunicación para la transmisión de datos a distancia........................334 Otros periféricos....................335 Polling (interrogatorio de tráfico) ...............................................................319 Dispositivos de soporte magnético....................................................................................................................................340 CONCLUSIÓN................................................................................................................................334 Técnicas de entrada/salida (input/output)..........................................................................................................................................................................................................318 TECNICAS Y DISPOSITIVOS DE ENTRADA / SALIDA (Input / Ouput)...................................................................................................................................................................................................................................

INTRODUCCIÓN 88 .

APUNTES DE CATEDRA
CARRERA:
Cátedra:
Profesor:
AÑO:

LICENCIATURA EN ANALISIS DE SISTEMAS –
INGENIERIA EN SISTEMAS
Procesamiento De Datos I
Lic. Marcelo Martinez
2003

EL NIVEL DE MICROPROGRAMACIÓN
La frontera entre el hardware y el software no está bien definida y, además, varia
constantemente. Las primeras computadoras tenían instrucciones para hacer operaciones
aritméticas y booleanas, corrimientos, comparaciones, iteraciones y otras que eran
realizadas directamente por el hardware. Para cada instrucción había un circuito especifico
que la ejecutaba. En teoría al menos, se podía destornillar el panel trasero e identificar los
componentes electrónicos que realizaban la instrucción dividir, por ejemplo.
En una moderna computadora multinivel ya no es posible aislar los circuito de la
división porque no existen. Todas las instrucciones en el nivel de máquina convencional (por
ejemplo: aritméticas, booleanas, de miento, de comparación y de bucle) son realizadas
paso a paso por un intérprete que se ejecuta en el nivel de microprogramación. El
equivalente moderno de buscar los circuitos de la división es obtener un listado del
microprograma y examinar la porción que interpreta la instrucción de dividir .
Aunque los programas de cualquier nivel pueden ser ejecutados por un programa
intérprete que, a su vez, puede ser llevado a cabo por otro intérprete, esta jerarquía no
puede continuar indefinidamente. En el nivel inferior deberá haber una máquina física, con
circuitos integrados, fuentes de alimentación y otros objetos del hardware. Estos elementos
fueron el tema del capítulo precedente. En este capítulo estudiaremos cómo el
microprograma controla los componentes del hardware e interpreta el nivel de máquina
ordinaria (convencional). En el capítulo 8 se estudiará una clase de máquinas no
microprogramadas (las máquinas RlSC).
Como la arquitectura del nivel de microprogramación, denominada microarquitectura, está definida por el hardware, suele ser primitiva y difícil de programar. Por
ejemplo, a menudo son importantes las consideraciones de tiempos. Esto llevó a Rocín
(1974) a definir la microprogramación como "el diseño de sistemas más o menos razonables
por medio de la interpretación sobre máquinas irracionales".
El nivel de microprogramación tiene una función específica: ejecutar intérpretes de
otras máquinas virtuales (más o menos razonables). El objetivo natural de diseño es la
obtención de una organización considerablemente optimizada para la extracción, examen y
ejecución de instrucciones del nivel de máquina convencional y, en algunos casos, de otras
más complejas. En este capítulo examinaremos los principios y soluciones intermedias que
hay que considerar en el diseño y organización de este nivel.
Empezaremos nuestro estudio del nivel de microprogramación revisando brevemente
los elementos básicos estudiados en el capítulo 3, ya que son parte de la arquitectura del
nivel de microprogramación y, por tanto, de interés para el microprogramador (persona que
escribe microprogramas, no un programador pequeño). Luego entraremos en el meollo del
tema, explicando de modo pormenorizado cómo pueden construirse instrucciones complejas
a partir de secuencias de instrucciones más primitivas. La explicación se apoyará en un
ejemplo desarrollado detalladamente. Después examinaremos los factores que deben
tenerse en cuenta al diseñar el nivel de microprogramación de una computadora, para
entender mejor por qué tiene determinada estructura. También se abordarán algunas
formas para mejorar el desempeño de la computadora. Por último, se examinará el nivel de
microprogramación de los dos ejemplos que se han venido usando, las familias lntel y
Motorola.

89

REPASO SOBRE EL NIVEL DE LÓGICA DIGITAL
El trabajo del microprogramador es escribir programas que controlen los registros,
buses, unidades aritméticas y lógicas, memorias y otros componentes del hardware de las
máquinas. En el capítulo anterior estudiamos estos dispositivos; ahora simplemente vamos
a revisarlos para tenerlos presentes. Después del repaso diremos algunas cosas sobre las
diferentes formas conceptuales de encapsular los componentes.

Registros
Un registro es un dispositivo capaz de almacenar información. El nivel de
microprogramación siempre dispone de registros para guardar la información que se
necesita en el procesamiento de la instrucción en curso de interpretación.
Desde el punto de vista conceptual, los registros son lo mismo que la memoria
principal; la diferencia estriba en que los registros están ubicados en el procesador mismo
y, por tanto, se puede acceder a ellos en lectura y escritura más rápidamente que a la
memoria principal, la cual suele estar fuera del chip (pastilla). Normalmente, las máquinas
mayores y más caras tienen un número mayor de registros que las más pequeñas y
económicas; éstas tienen que usar la memoria principal para guardar los resultados
intermedios. En algunas computadoras el nivel de microprogramación 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 número, es decir, por cuántos bits
puede guardar. La figura 4-1 muestra un registro de 16 bits con la convención de
numeración de bits usada en este libro. La información que se guarda en un registro
permanece en él hasta que otra la reemplaza. El proceso de leer la información de un
registro no afecta a su contenido. En otras palabras, cuando se lee un registro, lo que se
hace es una copia de su contenido, dejando inalterado el original.
Nº de bits 15 14 13 12 11 10 9
0 0 0 0 1 1 0

8
0

7
1

6
0

5
1

4
1

3
0

2
0

1
1

0
0

Fig. 4-1. Un registro de 16 bits de información

Buses
Un bus es un conjunto de alambres que se usan para transmitir señales 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 capítulo 3, éstos sólo
conectan dos dispositivos, de modo que no hay necesidad de líneas de direcciones o líneas
extensivas de control. Por ¡o general son suficientes las n líneas de datos y una o dos de
control. Se emplean buses, pues la transmisión paralela de todos los bits a la vez, es mucho
más rápida que la transmisión serial bit por bit.
Un bus puede ser unidireccional o bidireccional. Un bus unidireccional puede transferir
información en un solo sentido; en cambio uno bidireccional puede transferirla en los dos
sentidos, pero no simultáneamente. 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 colección de registros, cualquiera de los cuales puede ser
fuente o destino.
Muchos dispositivos tienen la posibilidad de conectarse y desconectarse eléctricamente
de los buses a los que están conectados físicamente. Estas conexiones pueden abrirse y
cerrarse en cuestión de nanosegundos. Un bus cuyos dispositivos tengan esta propiedad se
llama bus triestado, porque cada línea puede estar a O, a 1o desconectada. Suele utilizarse
cuando hay muchos dispositivos que pueden suministrar información aun bus.
En la mayoría de las micro arquitecturas algunos registros están conectados a uno o
más buses de entrada ya uno o más 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 señales de control CK
(reloj, que realmente quiere decir "carga registro") y DE (permiso de Salida), conectadas
ambas a todos los flip-flops. Normalmente ambas señales se hallan en su estado de reposo,
pero a veces pueden ser activadas, causando alguna acción.
Cuando CK están desactivada, el contenido del registro no es afectado por las señales
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, podría transferirse información 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. Después se debe activar la línea CK de R, con lo que éste se
carga con lo que hay en el bus. En el nivel de microprogramación son frecuentes estas
operaciones de conexión 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 señal DE
diferente.

91

Multiplexores y decodificadores
Los circuitos que tienen una o más líneas de entrada y que calculan uno o varios
valores de salida determinados únicamente por las entradas actuales se llaman circuitos
combinacionales. Dos de los más importantes son los multiplexores y los decodificadores.
Un multiplexor tiene 2" entradas de datos (líneas 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 señal 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, según el valor que tengan sus n líneas de control.
Otro circuito combinacional importante es el decodificador, que tiene n líneas de
entrada y 2" de salida, numeradas desde O hasta 2"-1. Si el número que hay en las líneas
de entrada es k, entonces se pone a 1 la salida k, permaneciendo las demás a O. Un
decodificador tiene siempre una y una sola salida al, estando a 0 las restantes. La figura 43(b) ilustra simbólicamente 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. Sólo
puede haber una línea de entrada a 1 y su número, en binario, aparece en la salida.

Unidades aritméticas y lógicas y registros de corrimiento
Toda computadora necesita algún medio para hacer operaciones aritméticas. El
circuito más simple es un sumador, que toma dos entradas de n bits y produce su suma
como salida. Un circuito aritmético más general es la ALU (Unidad Aritmética y Lógica).
También tiene dos entradas y una salida de datos, pero además tiene algunas entradas y
salidas de control. La de la figura 4-4(a) tiene dos bits de función, F0 y F1 que determinan
qué función se ha de realizar. La ALU que vamos a usar en nuestro ejemplo puede calcular
A + B, AND B, A y A-. Las dos primeras no requieren explicación; la tercera simplemente
copia A en la salida; la cuarta obtiene A negando (todos sus bits invertidos). La tercera
función puede parecer inútil, pero veremos su utilidad después. La figura 3-20 muestra una
ALU de cuatro funciones que opera sobre datos de un bit. Replicando este circuito n veces y
conectando el acarreo del bit i al del i + 1, obtendremos una ALU de n bits que realice las
operaciones AND, OR, NOT y suma.
Una ALU también puede tener salidas de control. Salidas típicas son aquellas que se
ponen a 1 cuando la salida de la ALU es negativa o cero, cuando hay acarreo del bit más
significativo o cuando ha ocurrido un desbordamiento. El ejemplo de la figura 4-4(a) tiene
dos salidas de control: N, para indicar que la salida de la ALU es negativa y Z, que indica
que es cero. El bit N es simplemente una copia del más significativo de la salida, mientras
que el bit Z es el NOR de todos los bits de salida.
Aunque algunas ALU pueden realizar también operaciones de desplazamiento, la

92

mayoría de las veces es necesaria una unidad específica. Este circuito puede desplazar su
entrada un bit a la izquierda o a la derecha, o también no realizar ningún registro de
corrimiento. La figura 4-4(b) muestra el símbolo que utilizaremos para registros de
corrimiento; la figura 3-17 muestra el circuito de un desplazador algo más sencillo.

Relojes
Los circuitos de las computadoras funcionan normalmente al ritmo de un reloj,
dispositivo que emite una secuencia periódica de impulsos. Estos impulsos definen los ciclos
de máquina. Durante cada ciclo tiene lugar alguna actividad básica, como la ejecución de
una microinstrucción. A menudo es útil dividir los ciclos en sub ciclos, para que las partes de
una microinstrucción 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 [línea superior de la figura 4-5(b) tiene un ancho de un cuarto de ciclo. Las otras
tres están retrasadas uno, dos y tres veces el ancho del impulso. El resultado es un circuito
que divide cada ciclo en cuatro sub ciclos idénticos. Para más detalles, véase la figura 3-21.

El diseñador de computadoras puede hacer que cuatro transiciones diferentes tengan
lugar en cierto orden dentro de un ciclo activando cada una de ellas con el AND lógico de la
señal habilitadora y una línea de reloj distinta. Primero se disparará la transición asociada a
la línea principal de reloj, luego la que esté asociada a la línea de reloj de menor retardo y
así sucesivamente.

93

Memoria principal
Los procesadores deben ser capaces de leer y escribir en memoria. La mayoría de las
computadoras tienen un bus (conducto) de direcciones, otro de datos y otro de control para
la comunicación entre la CPU y la memoria. Para leer de la memoria, la CPU pone una
dirección en el bus de direcciones y ajusta adecuadamente las señales de control; por
ejemplo, activando la señal 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 síncronas; es
decir, la memoria debe responder dentro de un plazo fijo. En otras puede tomarse el tiempo
que quiera, señalizando por medio de una línea 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 dirección donde se quiere guardar,
activando después WR (escritura). Una alternativa de tener las señales RD y WR sería tener
una señal MREQ, de petición a la memoria y otra RW , que distinga entre la lectura y la
escritura.
U n acceso a memoria es siempre considerablemente más largo que el que se necesita
para ejecutar una sola microinstrucción. 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 Dirección 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 línea de control. Las líneas-del bus de direcciones del
sistema siempre están permitidas [o, posiblemente, sólo durante las lecturas y las
escrituras, lo que requiere una línea de permiso de salida conectada al OR lógico de RD y
WR (no mostrada en la figura)]. La línea 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 cargándolo cuando se activa RD.

94

Sin embargo. En esta forma podríamos construir una máquina de 16 bits con solo 16 pastillas. cada uno en una pastilla. una ALU. que ocupan numerosas tarjetas de circuito impreso. Desde el punto de vista del fabricante. que espera construir computadoras durante años. todos de 32 bits. etc. contratar una compañía especializada en el diseño y fabricación de una pastilla de propósito específico. muchas computadoras se construyen conectando este tipo de componentes. las técnicas de diseño y fabricación son extraordinariamente complicadas y costosas. una ALU. consumen mucha energía y disipan abundante calor . En general. por ejemplo. La más simple es la combinación en circuitos MSI (Integrados a Escala Media). A pesar de que reduce de modo extraordinario el número de pastillas (a una sola). El principal inconveniente de construir computadoras con componentes MSI es el gran número de componentes necesarios. o construir el procesador con componentes M SI o de rodajas de bit. Cada pastilla de rodaja de bit tiene. ALU y otros componentes. la tecnología necesaria para integrar un gran número de componentes en una pastilla es diferente de la utilizada en los circuitos integrados de tipo MSI o en los de rebanada de 1 bit y suele producir máquinas más lentas. la utilización de rebanadas requiere menos pastillas y mucho menos tiempo de diseño que la de circuito M SI. adolece de desventajas. Podríamos fácilmente extender su diseño para añadirle. quizá merezca la pena dominar las tecnologías necesarias para hacer procesadores en una pastilla. un registro de corrimiento. cualquier competente ingeniero en electrónica puede diseñar una computadora sencilla con pastillas MSI o de rebanada de 1 bit sin demasiados problemas. También hay pastillas con rebanadas de 2 o 4 bits. pero normalmente produce máquinas más lentas. un registro de corrimiento. por ejemplo. Otra técnica es usar pastillas de rebanada de 1 bit. un registro de corrimiento de 1 bit y otros componentes de 1 bit de ancho. 16 registros de 1 bit. Tomando. Además. 32 de esas pastillas y poniéndolas una al lado de otra. Primero. La figura 4-7(b) muestra una máquina de 8 bits construida con 4 rebanadas de 2 bits. Debido ala gran variedad de chips rápidos y de bajo precio disponibles en el mercado. La figura 3-20 muestra el aspecto interno que presenta una rodaja de ALU de 1 bit. Una tercera forma de combinar los componentes consiste en poner el procesador completo en una pastilla [véase la figura 4-7(c)]..Encapsulado de los componentes En las secciones precedentes hemos descrito varios circuitos que pueden combinarse para formar una computadora. Las rebanadas de bit dan al diseñador la posibilidad de construir fácilmente una máquina de cualquier longitud de palabra. etc. Así pues. Este método se encuentra en la figura 4-7(a). seguramente no le interesará a una empresa que necesite sólo una máquina de propósito específico. con componentes como un registro. obtendríamos una máquina con 32 registros. Por el contrario. Se hallan disponibles en el comercio en formas conceptualmente distintas. 95 . 1 bit de registros. las opciones son: utilizar un procesador disponible en el comercio.. por ejemplo.

Contiene 16 registros idénticos de 16 bits. SP. 96 . de todos modos los hemos incluido porque disponíamos de más registros que los que podíamos utilizar. abordaremos el tema por medio de un ejemplo detallado. Los registros rotulados O. Cada registro puede sacar su contenido a uno de los buses A o B o a ambos y tomarlo de un tercero. Los restantes tienen nombre que explicaremos más adelante. que forman una memoria de anotaciones accesibles solamente al nivel de microprogramación. como se muestra en la figura. es el momento de ver cómo se interconectan. En nuestros ejemplos sencillos el 0 nunca se usa. La de nuestro ejemplo se muestra en la figura 4-8. + 1 y -1 se usarán para guardar las constantes indicadas. rotulados PC. pero probablemente se necesitará en una máquina más complicada. etc. C. sus entradas y sus salidas. .UNA MICROARQUITECTURA TIPICA Una vez estudiados todos los componentes básicos con los que se construye el nivel de microprogramación. La ruta de datos La ruta de datos es la parte de la CPU que contiene ala ALU. AC. Como los principios generales en esta área son pocos y dispersos.

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

Para la comunicación con la memoria. Los intercambios entre los diseños de dos y tres buses abarcan complejidad. La línea M0 controla la carga del MAR. Si no los hubiera. A: = A + B. por ejemplo. el bus C cambiaran también. Con los valores de las 61 señales podemos realizar un ciclo de nuestra ruta de datos. por tanto. podríamos tener un registro de control de 61 bits. representado en la figura 4-8 por Amux. excluyendo los demás.g. podemos codificar la información del bus A en 4 bits y utilizar un decodificador para generar las 16 señales de control. • 16 para controlar la carga del bus B a partir de registros internos. A medida que A fuera cargándose. La línea de control A0 determina si el biestable A o el MBR se alimentan en la ALU. De acuerdo a sus funciones. En consecuencia se guardaría un valor incorrecto en A. Para empezar. Un bit a 1 significa que la señal está activada y uno a O que no lo está. cargando los operandos al inicio del ciclo en los buses A y B y leyendo el resultado en uno de éstos más adelante en el ciclo. en paralelo con el almacenamiento en la memoria de anotaciones o en lugar de él M1 controla la carga del MBR a partir de la salida del registro de corrimiento M2 y M3 controlan las lecturas y escrituras de memoria. 98 . lo que haría que la salida de ALU y. Desafortunadamente. Vale la pena señalar que la solución (v . • 2 para controlar los registros de A y B. insertar biestables al frente de la ALU) no es la única. tenemos 16 bits para controlar la entrada al bus A. los datos leídos de la memoria pueden presentarse en la entrada izquierda de la ALU a través del multiplexor A. 2 para controlar la función de la ALU. Insertando registros buffer en los. es decir. buses A y B. calcula continuamente la salida en función de las entradas y el código de función. • 1 para controlar el Amux. el valor del bus A empezaría a cambiar. puede cargarse el MAR e iniciarse un ciclo de memoria. Además. Microinstrucciones Para controlar la trayectoria de datos de la figura 4-8 se requiere de 61 señales. . paralelismo y cantidad de alambrado. La carga de estos buffers está controlada por L0 y L1. al precio de un pequeño incremento en la circuitería. para una señal de control. • 2 para indicar una lectura o una escritura en memoria. cada uno de ellos. el A del lado derecho debe ser el valor original que A. Si en vez de biestables. En las escrituras se puede cargar el MBR con la salida del registro de corrimiento. Un ciclo consiste en vaciar los valores en los buses A y B. Por tanto. • 16 para controlar la carga del bus A a partir de registros internos. En las primeras. Sin embargo. lo que permite 216 combinaciones de los registros.combinacional. Como primera aproximación. hemos incluido en la micro arquitectura un MAR y un MBR. todos los registros son del tipo flip-flop. habría problemas cuando se calcule. en pasarlos a través de la ALU y el registro de corrimientos y en almacenar el resultado en la memoria interna y en el MBR o en ambos. 4 para controlar el MAR y el MBR. almacenarlos temporalmente en los registros de A y B. en paralelo con una operación de la ALU. de modo que ALU se aislé de los cambios en los buses a medida que el nuevo valor se vaya guardando en la memoria de anotaciones. no una extraña mezcla de bits del valor anterior y reciente. en la asignación A: = A + B. éstas se pueden dividir en nueve grupos que a continuación se describen. El MAR puede cargarse a partir del registro de B. La micro arquitectura de la figura 4-8 es similar ala de muchos de los circuitos comerciales de rebanadas de 1 bit disponibles. • 2 para controlar al registro de corrimiento. podemos congelar los valores originales de A y B al principio del ciclo. Un tratamiento más detallado de estos aspectos está más allá del alcance de este libro. sólo están permitidas 16: cada uno de los 16 registros. podemos reducir en mucho el número de bits que necesitan para controlar la ruta de datos. Lo mismo vale para el bus B. En otras palabras. • 16 para controlar la carga de la memoria de anotaciones a partir del bus C. entonces es también posible un desempeño de dos buses.

pero no se desea almacenar el resultado. lo que causa problemas en diseños bidimensionales. WR . Una señal adicional. 3= A. 11 de los cuales son: AMUX . 1 = MBR. pero esta práctica es casi siempre inútil y la mayoría de las máquinas no la permiten. necesitamos ahora sólo 25 bits de control para activar la ruta de datos. es posible tener almacenamientos múltiples en la memoria de anotaciones. no estrictamente necesaria pero a menudo útil. 1 = AC. Habiendo ahorrado 3 x 12 = 36 bits. SH .Petición de lectura de memoria: O = no pide. Se ha elegido el orden que minimice el cruce de líneas en una figura que hay más adelante.Control de almacenamiento en registros de memoria interna: O = no almacena.Selecciona la fuente del bus A: O = PC.se con cruces de conexiones en circuitos impresos o integrados. RD .Controla la entrada izquierda ala ALU: O.Función del registro de corrimiento: O = nada.Esta situación es algo diferente en el bus C. 1 = carga el MBR de memoria. 1 = AC. 2 = a la izquierda. 1= carga. 1 = AC. El siguiente paso en el diseño de la micro arquitectura es inventar un formato de microinstrucción que contenga 22 bits. 1 = carga.Selecciona el registro dónde almacenar si ENC = 1: O = PC. Notamos ahora que RD puede usarse para cargar el MBR con el bus de datos del sistema y WR para permitir la salida del MBR al mismo bus. ALU –Función de la ALU: O=A+B. En algunas situaciones sólo interesa generar las señales N y Z. Esta observación reduce a 22 el número de señales de control independientes. C . quedando 23 bits de control. etc. MAR . El orden de los campos es completamente arbitrario. 2=A. Así pues. los cruces de líneas suelen corresponder.Selecciona la fuente del bus B: O = PC. ENC . MBR . B . La figura 4-9 muestra uno de los posibles. etc. podemos indicar que se almacene el bus C (ENC = 1) o no (ENC = O). etc.Carga del MBR a partir del registro de corrimiento: O = no carga. A .Petición de escritura en memoria: O = no pide. por lo que puede activarlos el reloj. también podremos codificar el control del bus C con 4 bits. con dos campos adicionales. que se describirán en seguida. (Este criterio no es tan disparatado como parece. 1 = a la derecha. 1=A AND B. L 0 y L1 siempre se necesitan en un momento determinado del ciclo de máquina. 1 = almacena. En este momento estamos en condiciones de controlar la ruta de datos con 24 bits. La microinstrucción contiene 13 campos. COND y ADDR.Carga del MAR a partir del registro de B: O = no carga. Con este bit adicional que llamaremos ENC (habilita C).) 99 . En principio. 1 = escribe el MBR en memoria. es aquella que permite o inhibe el almacenamiento del bus C en la memoria interna. tampón de A.

como el de la figura 4-5. es decir. con cuatro sub ciclos. a la izquierda. darle tiempo ala ALU para realizar su trabajo y almacenar entonces el resultado. que ya estudiamos de modo pormenorizado. podrá avanzar en la comprensión total del nivel de microprogramación. Es evidente que estos sucesos deben tener lugar en esa secuencia. • Cuando las entradas de la ALU están estabilizadas.Cronología de las microinstrucciones Aunque nuestra exposición de la forma en que una microinstrucción puede controlar la ruta de datos durante un ciclo es casi completa. y su captura por los registros A y E. He aquí los eventos clave durante cada uno de los sub ciclos: • Carga la siguiente microinstrucción a ejecutarse en un registro denominado MIR (Registro de Microinstrucción). La figura 4-10 es un diagrama de bloques detallado de la micro arquitectura de nuestra máquina completa. • Salida del contenido de los registros a los buses A y E. y la sección de control. pero merece la pena estudiarla en detalle. se almacena el bus C en la memoria de anotaciones y en el MER si es necesario. hemos olvidado un asunto importante: la cronología. introducimos un reloj de cuatro fases. de la que trataremos ahora. Un ciclo básico de ALU consiste en cargar los registros A y E. hay que dar tiempo ala ALU y al registro de corrimiento para que produzcan una salida estable y cargar el MAR si es necesario. Si intentáramos almacenar el bus C en la memoria de anotaciones antes de cargar los registros A y E. 100 . Puede parecer impresionante a primera vista. se guardaría basura en lugar de datos útiles. Para obtener la secuencia correcta. El diagrama de bloques tiene dos partes: la ruta de datos. Cuando el lector entienda completamente cada bloque y cada línea. • Ahora que la salida del registro de corrimiento está estabilizada.

Sin embargo.La parte más voluminosa e importante de la porción de control de la máquina es la memoria de control. el MIR solamente se carga durante el primer sub ciclo. Durante el segundo sub ciclo. Llamaremos al MAR el M PC (Contador de Microprograma). Durante los otros tres sub ciclos no se altera.ciclo. como indica la línea de trazos que lo conecta con el reloj. por lo que la memoria de control ocupará un máximo de 256 x 32 = 8192 bits. Como cualquier otra memoria. En particular. teniendo la primera el microprograma y la última el programa en nivel de máquina convencional. En nuestro ejemplo las microinstrucciones serán de 32 bits y el espacio de direcciones de microinstrucción constará de 256 palabras. proporcionando entradas estables a la ALU durante el resto del 101 . Los bloques "Decodificador de A " y "Decodificador de B" del diagrama proporcionan la decodificación de 4 a 16 de cada campo. El reloj activa los registros de A y de B durante este sub. El MBR será el MIR ya mencionado. En la figura 4-10 se observa que la memoria de control intenta continuamente copiar la microinstrucción direccionada por el M PC al MIR. Es donde se guardan las microinstrucciones. independientemente de lo que le suceda al MPC. el MIR se encuentra estabilizado y sus campos empiezan a controlar la ruta de datos. porque su única función es señalar la siguiente instrucción que va a ejecutarse. necesaria para activar las líneas SAL1 y SAL2 de los registros [véase figura 4-2(b)]. la de control necesita un MAR y un MBR. Es importante darse cuenta de que la memoria de control y la principal son completamente diferentes. los campos A y B hacen que los datos salgan a los buses A y B. en otras es de lectura y escritura. En algunas máquinas es una memoria de lectura solamente.

En caso contrario es 0 y se extrae la siguiente microinstrucción en secuencia. La mayoría de las arquitecturas usan esta estrategia de una forma u otra. Se ha tomado esta decisión porque los saltos condicionales son muy comunes en los microprogramas y. ENC= 1. Expresado con palabras. la siguiente microinstrucción se toma de M PC + 1.ciclo. que determina si la siguiente microinstrucción se extrae de M PC + 1 o de ADDR. la cuarta línea de reloj y el campo C de la microinstrucción como entrada y genera las 16 señales de control. Por esta razón dotamos a cada microinstrucción de dos campos adicionales: ADDR. la señal correcta será. si el campo MAR de la microinstrucción está a 1. la entrada derecha es siempre el tampón de B. La lógica de microsecuenciamiento combina los dos bits de la ALU. En su interior realiza una decodificación de 4 a 16 del campo C y entonces hace el y lógico de sus salidas con el resultado de hacer el y lógico del sub ciclo 4 con ENC. el tiempo que emplea en calcular la suma está determinado por el tiempo de propagación de los acarreos. Aunque la ALU es un circuito combinacional. 3. La elección de la siguiente microinstrucción la realiza la caja rotulada "Lógica de Microsecuenciamiento" durante el sub ciclo de 4. Durante el cuarto y último sub ciclo. cuando las salidas de la ALU N y Z son válidas. durante el ciclo siguiente. En efecto. Mientras la ALU y el desplazador están calculando. los microprogramas se ejecutan más rápido que si se tuviera que ajustar alguna condición en una microinstrucción y examinarla en la siguiente. la unidad de "Incremento" de la sección de control calcula M PC + 1. la señal de control a Mmux es 1 (encaminando ADDR al M PC) si ID es 012 y N= 1. que determinará cuál será la siguiente microinstrucción a extraer. Por tanto. 3 = Saltar a ADDR incondicionalmente. los campos correspondientes del MIR actúan como si fueran biestables. 2. el MAR se carga con el contenido del bus B. se necesita algún mecanismo que permita saltos condicionales en el microprograma para tomar decisiones. El campo de microinstrucción AMUX determina la entrada izquierda a la ALU. Cada microinstrucción contiene potencialmente un salto condicional. Llamando a éstos 1 y D (izquierdo y derecho). y los dos bits de COND para generar la salida. La ejecución de instrucciones se puede acelerar traslapando estas dos operaciones. no por el retraso normal de las puertas. En el tercer sub ciclo se les da a la ALU y al desplazador tiempo suficiente para que produzcan resultados válidos. el bus C se puede almacenar en la memoria de anotaciones y en el MBR. Hemos proporcionado al microprogramador cuatro alternativas posibles ajustando COND como sigue: 0 = No saltar. El circuito que 102 . El MBR también se carga durante el cuarto sub ciclo si MBR=I. que es la dirección de un sucesor potencial de la microinstrucción en curso. Es el sub ciclo 4. que encamina M PC + 1 o ADDR al M PC. en preparación de la carga de la siguiente microinstrucción en secuencia. Secuenciamiento de las microinstrucciones Lo único que nos queda por ver es cómo se elige la siguiente microinstrucción. Las dos señales que controlan la memoria. Mientras los datos salen a los buses A y B. o si ID es 112. y COND. Mmux = IDN + IDZ + ID = DN + IZ + ID Donde + significa O INCLUSIVO. al permitir que toda microinstrucción tenga dos posibles sucesores. están activas mientras estén presentes en el MIR. según los campos ENC y MBR. 1 = Saltar a ADDR si N= 1. N y Z. La caja rotulada "Decodificador de C" toma ENC. RD y WR. sólo se carga un registro de anotaciones si: 1. La salida de esta caja controla el multiplexor M (Mmux). Aunque la mayoría de las veces basta extraer la siguiente microinstrucción en secuencia. si ID es 102 y Z = 1. El campo C selecciona el registro. 2 = Saltar a ADDR si Z = 1.

pasaremos ahora a la arquitectura del nivel de máquina convencional que deberá ser soportado por el intérprete que se ejecute en la máquina de la figura 4-10. (La razón por la que repetimos esto es que algunos ensambladores proporcionan la posibilidad de definir “macros”. y se desperdiciará para cualquier trabajo útil. (Supóngase que el compilador es para una microcomputadora y sólo realizará un subconjunto del Pascal que no incluye el operador de multiplicación. vamos a divagar un poco para motivar el diseño. consideremos el programa Pascal de la figura 4-11(a). Por conveniencia. x e y. Uno de los aspectos más importantes del diseño es el direccionamiento. que no tiene nada que ver con lo que aquí entendemos como macroinstrucciones.) De modo similar. Pilas Una macro arquitectura moderna debería diseñarse teniendo presentes las necesidades de los lenguajes de alto nivel. Luego calcula su producto interno (también llamado producto escalar). deberá tener sólo RD = 1. como ADD. o ser parte de una PLA. llamaremos macro arquitectura a la arquitectura del nivel 2 o del3. Si el microprograma no tuviera nada que hacer.) 103 . Siempre que necesite multiplicar dos números enteros. a las instrucciones del nivel 2 las llamaremos macroinstrucciones. etc. Así. llama a la función mulp. también debe tener RD = 1 en la siguiente que ejecute (que puede estar o no en la posición siguiente de la memoria de control) . MOVE. Para que nuestro ejemplo de máquina sea más realista. en ensamblador. durante este capítulo. (Para los propósitos de este capítulo. ignoraremos el nivel 3. supondremos que un ciclo de memoria principal dura más que una microinstrucción. Antes de describir la Mac-1. con valores tales que XK = k e YK = 2k + 1. Del mismo modo una escritura en memoria también requerirá dos microinstrucciones para completarse. si esta última comienza una lectura de memoria poniendo RD al. ya que sus instrucciones son en gran parte las del nivel 2 y sus diferencias no tienen importancia aquí. El programa principal inicializa dos vectores. llamaremos macroinstrucciones a las instrucciones normales del nivel de máquina convencional.calcule la señal puede construirse con componentes SSI. como en la figura 3-3(b). y así distinguirla de la arquitectura del nivel 1 o micro arquitectura. En particular.El dato no estará disponible hasta que hayan transcurrido dos microinstrucciones después de iniciar la lectura. Para ilustrar el problema que vamos a resolver. UNA MACROARQUITECTURA TIPICA Para continuar nuestro ejemplo del nivel de microprogramación. como en la figura 3-16.) Algunas veces nos referiremos a nuestro ejemplo de máquina de nivel 1 como Mic-1 ya la de nivel 2 que soporta como Mac-1.

y de un apuntador a la pila (SP).Los lenguajes con estructura de bloques. La forma más sencilla de hacerlo consiste en utilizar una estructura de datos llamada pila. al salir de un procedimiento o función. que dice dónde está la cima de ese bloque. La base de la pila está en la dirección 4020 y la cima. donde apunta SP. por el contrario. como el Pascal. La figura 4-12(a) ilustra una pila que ocupa seis palabras de memoria. está en la 4015. Las dos más importantes son PUSH X y POP y (desapila Y). pero la otra alternativa también es buena. Nuestras pilas crecerán desde1as direcciones altas de memoria a las bajas. suelen realizarse de modo que. PUSH incrementa el tamaño de la pila en un elemento. Una pila consta de bloque de memoria contigua. PUSH avanza el apuntador de pila (decrementándolo en nuestro ejemplo) y luego pone X en la posición de memoria a la que ahora apunta SP. Se definen varias operaciones en las pilas. La base de la pila está en una dirección fija que no interesa en adelante. que contiene ciertos datos. se libere la memoria usada por las variables locales. POP Y. reduce el tamaño de la pila 104 .

no se pueden usar para guardar variables. El vector x requiere 20 palabras. la variable k del programa Pascal se guarda en la dirección 4020 (todas las direcciones en decimal). para reservar espacio a las variables locales. El vector y empieza en la 3980 para y[l] y se extiende ala 3999 para y[20]. La figura 4-13(a) muestra la asignación de memoria durante la ejecución del programa principal de la figura 4-11. Otra operación que puede realizarse en una pila es avanzar el apuntador de pila sin apilar ningún dato.guardando el último elemento en Y. por tanto. La figura 4-12(b) muestra el aspecto de la pila de la figura 4-12(a) después de haber apilado una palabra que contiene un 5. Esto suele hacerse cuando se entra en un procedimiento o función. Hemos supuesto arbitrariamente que la memoria consta de 4096 palabras de 16 bits y que las posiciones desde la 4021 a la 4092 están utilizadas por el sistema operativo y. Mientras 105 . eliminándolo de ella incrementando la dirección del apuntador de pila. de la 4000 ala 4019.

como muestra la figura 4-13(b). ya que son los nombres de los parámetros formales de mulp. En otras palabras. con lo cual indica que esta dirección es la última de la pila. por supuesto. pero no desde el programa principal. En este punto SP vale 3975. Ahora nos encontramos con el problema: ¿qué código generará el compilador para accesar a los parámetros de mulp ya sus variables locales? Si intentara leer p usando una instrucción semejante a MOVE 3976.terno. SP tiene el valor 3980. Lo primero que hace es avanzar el apuntador de pila en 2 unidades.el programa principal se ejecuta fuera de mulp. Cuando el programa principal quiere llamar a mulp. mulp funcionaría cuando se le llama desde el programa principal. que apila la dirección de retorno. pero. Cuando empieza mulp. Las cinco palabras de la cima de la pila constituyen la parte de pila utilizada por mulp y se liberarán cuando termine. p y j.DONDE. contienen 2 y k respectivamente.DONDE funcionará cuando se le llame desde in. De manera similar. Cuando se haya terminado mulp y se haya llamado a interno. la pila estará como muestra la figura 4-13(d). de manera que mulp sepa dónde volver cuando termine. el Mac-1 necesita un modo de direccionamiento que extraiga o almacene una palabra situada a una distancia conocida del apuntador de pila (o algún modo de direccionamiento equivalente). SP tiene 3977. 2yk. primero apila los parámetros de la llamada. Cuando interno llame a mulp. Las palabras 3979 y 3978 están rotuladas como a y b.y luego ejecuta la instrucción de llamada. la configuración de la pila será la mostrada en la figura 4-13(c). MOVE 3971. 106 . Lo que se necesita realmente es alguna forma de decir "extrae la palabra que esté una dirección por encima del apuntador de pila". pero no cuando se le llamara desde interno. para reservar dos palabras para sus variables locales.

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

STOD. como ya hemos visto. LODD carga el acumulador con la palabra de memoria especificada por sus 12 bits menos significativos. sp:=sp + 1 Retorno pc:=m[sp]. El direccionamiento local especifica un desplazamiento respecto al SP y se utiliza para accesar a las variables locales. entre otras cosas. es local. y sp sp:=tmp Incrementa sp sp:=sp + y (0 ≤ y ≤ 255) Decrementa sp:=sp . la tercera tiene su nombre completo. Estos tres modos combinados proporcionan un sistema de direccionamiento simple pero adecuado. Su direccionamiento es. mientras que el de LODL. directo. que carga el acumulador con la palabra situada a una distancia x por encima de SP. ADDD y SUBD realizan las cuatro operaciones básicas usando direccionamiento directo: LODL. m[sp]:=m[ac] Dasapila m[ac]:= m[sp]. y la cuarta describe la que hace mediante un fragmento en Pascal. la segunda da su nombre nemotécnico en lenguaje ensamblador. Binario 0000xxxxxxxxxxxx 0001xxxxxxxxxxxx Nemotécnico Instrucción 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 . La figura 4-14 muestra el juego de instrucciones del Mac-1.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 . STOL. pc=x sp:=sp – 1. sp:=sp indirecto +1 Apila sp:=sp – 1. ADDL y SUBL las realizan con direccionamiento local. m[sp]:=ac Desapila ac:=m[sp]. m[sp]:=pc.y (0 ≤ y ≤ 108 . LODD. En esos fragmentos m[x] significa la palabra de memoria x. La primera columna de la codificación binaria de la instrucción.sp:=sp+1 Intercambia ac tmp:=ac. Cada instrucción contiene un código ya veces una dirección de memoria o una constante. ac:=sp.m[sp .utiliza para accesar a elementos de un vector. por tanto. Así.x] if ac < 0 then pc:=x if ac ≠ 0 then pc:=x sp:=sp – 1.

mientras que las otras cuatro sólo la hacen si se cumple la condición especificada. que desapila una palabra y la guarda en la posición de memoria direccionada por AC. La lectura de la dirección 4092 pone a cero la 4093. guardando la dirección de retorno en la pila y RETN regresa de un procedimiento. La rutina de entrada estará normalmente en una pequeña iteración de espera a que la 4093 se haga negativa. El bit más significativo del registro de estado de la salida. en la columna 4 se llama y Fig. Un ejemplo de cómo se programa con este juego de instrucciones se observa en la figura 4-11(b). de dirección 4095. La operación inversa es POPI. La salida se realizará en forma similar. El conjunto de instrucciones del Mac-1 Hay cinco instrucciones de salto. Debido a la falta de espacio de codificación. JZER. Hasta ahora. los desplazamientos se han limitado a 8 bits. Una lectura de la dirección 4092 dará una palabra de 16 bits con el siguiente carácter ASCII del dispositivo normal de entrada en los 7 bits menos significativos y ceros en los 9 más significativos. ni se le agregarán. SW AP intercambia los contenidos de AC y SP. la instrucción CALL se usa para llamar a un procedimiento. que es el programa de la figura 4-11(a). desapilando la dirección de retorno y almacenándola en el registro PC. LOCO carga en AC una constante de 12 bits en el rango de O a 4095 (inclusive). cargará el contenido de la 4092 y regresará. OUTNUM 1 y STOP son rutinas de biblioteca que realizan las funciones obvias. volviéndose a poner a 1 cuando el dispositivo de salida esté listo para recibir un nuevo carácter. una lectora de tarjetas y una impresora o alguna otra combinación. ya que un código optimizado dificultaría el seguimiento del ejemplo: Los números 0 a 19 en los comentarios. JNEG y JNZE). compilado a lenguaje ensamblador por un compilador que no hace ninguna optimización. pues no las necesita. la máquina no tiene instrucciones de entrada / salida. 4-14. También resulta útil inicializar SP al principio de la ejecución. la que es útil cuando hay que incrementar o decrementar SP en una cantidad desconocida en tiempo de compilación. una incondicional (JUMP) y cuatro condicionales (JPOS.sp 255) xxxxxxxxxxxx es una dirección de máquina de 12 bits. Cuando suceda. con dirección 4093. se pondrá a 1 el bit más significativo del registro de estado de la entrada. Por último. Los dispositivos normales de entrada y salida pueden ser un teclado y una pantalla. Una escritura en la 4094 tomará los 7 bits menos significativos de la palabra escrita y los copiará en el dispositivo normal de salida. 109 . PUSH y POP sirven para manipular la pila de diversas maneras. En su lugar usa E/S por memoria. Las instrucciones INSP y DESP se utilizan para aumentar o disminuir SP en cantidades conocidas al momento de la compilación. ayudan a ver las partes que se corresponden de las dos mitades de la figura. Yyyyyyyy es una constante de 8 bits. se borrará. Cuando haya un carácter disponible en la 4092. en la columna 4 se llama x. identificados por una barra inclinada en el lenguaje ensamblador. PSHI apila la palabra cuya dirección está en AC. JUMP siempre copia los 12 bits menos significativos al contador de programa.

C = 1. Pero es una monstruosidad. Recuérdese que 25% de ineficiencia en el microprograma desacelera la máquina completa 25%. podemos escribir respectivamente: ac: = a + ac. y 3 de la AL U. en LMAN. En LMAN los almacenamientos en los 16 registros de anotaciones. Para indicar el uso de las funciones 0. Una notación posible es hacer que el microprogramador especifique una microinstrucción por línea. a la que se puede asignar un valor simplemente para indicar el contenido de la ALU. como en tir : = desizq (tir + tir) Que pone el tir en los buses A y E. Llamaremos a nuestro lenguaje Micro ensamblador de Alto Nivel ("LMAN"). El orden de las distintas partes de una sentencia fuente es. Para indicar las lecturas o escrituras en memoria. mascp). a: = and (ri. ¿Cómo especificamos el registro que vamos a examinar? Para resolver este problema introducimos la seudo variable alu. El lenguaje micro ensamblador En principio. pero intentaremos colocarlas en el orden en que se ejecutan para aumentar la legibilidad. Los programadores masoquistas podrían disfrutar con ello. a razón de 32 bits por microinstrucción. simplemente pondremos rd o wr en el programa fuente. 1. alu : = tir. Es concebible escribir microprogramas en un lenguaje de alto nivel ordinario. adoptaremos el convenio del Pascal que consiste en utilizar nombres en letra cursiva minúscula para los identificadores). arbitrario. Por ejemplo. A= 10 Muchos lenguajes de microprogramación utilizan una notación similar. La figura 4-15 ofrece algunos ejemplos de sentencias LMAN junto 110 . debemos considerar cuidadosamente qué lenguaje elegimos para microprograma . ENC = 1. nombrando cada campo distinto de cero y su valor.MICROPROGRAMACIÓN: UN EJEMPLO Habiendo especificado la micro arquitectura y la macro arquitectura en detalle. se presenta un pequeño problema cuando deseamos examinar un registro pero no almacenarlo. hemos de abordar ahora el tema de la implementación de la segunda. 2. podría escribir . para sumar AC a A y guardar el resultado en AC. se utiliza un lenguaje ensamblador. podría escribir microprogramas en binario. nuestro ejemplo anterior. B = 1. reteniendo el concepto de una línea por microinstrucción. se representan por sentencias de asignación. Por ejemplo. realiza la suma y desplaza ésta a la izquierda 1 bit antes de almacenarla de nuevo en el tir. Una idea mucho mejor es usar una notación de lenguaje de alto nivel. Por ejemplo. que los definimos como un lenguaje simbólico cuyas instrucciones se correspondan biunívocamente con las del lenguaje máquina. Por tanto. Los saltos incondicionales pueden representarse por sentencias goto y los condicionales pueden examinar n o z. en principio. pero como la eficiencia es de crucial importancia. Por ejemplo: if n then goto 27 Sin embargo. donde and se refiere al "y booleano" e inv la inversión. Los desplazamientos pueden representarse por las funciones desizq si son a la izquierda y desder si son a la derecha. Así. en el MAR o en el MBR. ¿Qué aspecto tendrá un programa que se ejecute en la primera e interprete la segunda? ¿Cómo funcionará? Antes de contestar estas preguntas. se escribiría ac : = a + ac (como nuestra intención es que el LMAN se parezca al Pascal. al igual que los lenguajes que la utilizan. necesitamos un lenguaje simbólico en el que expresar los microprogramas. if n then goto 27. ac: = a ya: = inv(a). Significa que se ha de pasar el tir por la ALU (código ALU = 2) para que se pueda examinar su contenido" Nótese que el uso de alu significa que ENC = 0. pero nadie más.

Los 6 registros restantes no tienen ninguna función asignada y pueden usarse al arbitrio del microprogramador. utilizada para decodificar el código de operación. IR es el registro de instrucción que contiene la macroinstrucción en curso de ejecución. TIR es una copia temporal del IR. 4-15. Ahora la elección de los nombres de los registros de la figura 4-8 se hace evidente: PC. 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 0 1 2 2 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 0 1 0 2 0 0 0 0 1 4 3 3 69 Fig. rd tir:= lshift (ir + ir). mbr:=ac.con sus microinstrucciones correspondientes. rd rd ir:=mbr pc:=pc + 1 mar:=ir. Los tres registros siguientes se utilizan para guardar las constantes indicadas. wr alu:=tir. y se usa para separar el código de operación y los bits de dirección. 111 . AMASK es la máscara de direcciones. if n then goto 25 alu:=ac. amask). if z them gato 22 ac:= band (ir. Sentencia mar:=pc. SMASK es la máscara de la pila 000377 (octal). que se utiliza en las instrucciones INSP y DESP para aislar el desplazamiento de 8 bits. Es un programa sorprendentemente pequeño. que ocupa sólo 79 líneas. AC y SP se usan para guardar los tres registros del Mac-1. 007777 (octal). goto 0 sp:=sp + (-1). algunas sentencias LMAN y sus microinstrucciones correspondientes El ejemplo de microprograma Hemos llegado finalmente al punto donde podemos engarzar todas las piezas. La figura 4-16 es un microprograma que funciona en el Mic-1 e interpreta el Mac-1. if n them gato 15 ac:=inv(mbr) tir:= lshift (tir).

la decodificación continúa en la línea 28 y.Como todos los intérpretes. donde empieza a extraer la macro. Todas las instrucciones que tengan 00 en sus dos bits más significativos llegarán a la línea 4. Cuando llega la instrucción. por el momento. en la 3. La línea 5 es un ejemplo de 112 . La salida del registro de corrimiento no afecta a los bits de estado de la ALU. la guarda en el IR y simultáneamente examina su bit más significativo (el 15). en la línea 3 se examina el bit 14 y se carga el TIR con la instrucción original desplazada 2 bits a la izquierda (un bit con el sumador y el otro con el registro de corrimiento). donde se las examinará el bit 13. que la instrucción es LODD. Mientras espera que la instrucción llegue. que en este caso consiste en una serie de instrucciones de nivel 2. Si es 1. en caso contrario. en la que el bit 14 es el más significativo. el microprograma de la figura 4-16 tiene un bucle principal que extrae. que mandará alas que empiecen por 000 a la línea 5 ya las que empiecen por 001 a la línea 11. en la línea 2. ya que IR + IR desplaza el IR en lugar a la izquierda. decodifica y ejecuta instrucciones del programa que interpreta.instrucción a la que apunta el PC. incrementa el PC y sigue manteniendo activa la señal RD. Suponiendo. Nótese que el estado N de la ALU está determinado por su salida. Su bucle principal comienza por la línea O.

refrescar la memoria o alguna otra cosa. el microprograma la copia al AC y salta al comienzo del bucle. saltando finalmente al procedimiento. Primero se calcula la dirección absoluta de memoria sumando el desplazamiento contenido en la instrucción al SP. En otras palabras. STOL. podríamos haber eliminado la 49 poniendo en la 48 un salto incondicional a la 22. dejando libre la línea 1 para alguna otra cosa mientras se espera. ac : = mbr. Usa la siguiente propiedad de la aritmética en complemento a dos: x -y = x + (. pero para STOD y otras micro. podemos empezar la extracción de la siguiente microinstrucción antes de terminar la ejecución de la que esté en curso. podríamos.instrucciones no lo será. En este caso. ADDL y SUBL son similares. Desafortunadamente. JZER (línea 23) funciona en forma contraria a JPOS. pero no lo cambia. Sus rutinas de ejecución son tan simples que no las vamos a comentar. En JZER se produce el salto si se cumple la condición. sólo espera. por lo que la siguiente rutina de ejecución interesante es la de LODL. si la condición se cumple. tendríamos que examinar muy cuidadosamente si el tener basura en los 4 bits más significativos del PC puede causar algún problema más tarde. los 4 bits más significativos son cero.microinstrucción con ENC = 0. El micro código de JPOS comienza en la línea 21. como el MAR sólo tiene 12 bits de anchura. Como el código para realizar el salto es el mismo en todas las instrucciones de salto. sino que también hay menos código que depurar.. STOD. acelerar la máquina modificando la línea 8 para leer mar: = pc. usaremos las líneas 7 y 8 para ambos. goto 1. Después se inicia la lectura de memoria. El rendimiento es lo más importante. Si hubiéramos dejado la línea 1 como está. los bits de código de operación no afectarán a la lectura. Las macroinstrucciones restantes tienen 1111 en sus 4 bits más significativos. Observaciones sobre el microprograma Aunque hemos estudiado el microprograma con bastante detalle. pero en un microprograma no se tienen esos escrúpulos. Si hubiera costado una microinstrucción adicional. se seleccionará el código de LODO o el de STOD. En cambio si AC >= 0. como la 13. Si es LOOD. debemos mantener activo WR durante otra microinstrucción. Lo único que cabe mencionar es cómo se realiza la resta. El código de JNEG y JNZE es similar al de JZER y JPOS. En la figura 4-16 incrementamos el PC en la línea 1. JUMP y LOCO son evidentes. por lo tanto. Según sea el resultado de esta comprobación. Cuando llega la palabra. Podíamos también haberlo incrementado en la línea O. Si AC<O. sin embargo. podemos ahorrar micro código yendo a la línea 22 siempre que sea posible.y) = x + ( y + 1) = x + 1 + y La suma de 1 al AC se hace en la línea 16. es interesante hacer algunos comentarios. No sólo se ahorra memoria de control sin pérdida de velocidad.. si hubieran sido exactamente iguales. respectivamente (y no al contrario). no se produce el salto y el control vuelve al bucle principal. solamente examina el TIR. CALL decrementa primeramente el SP y entonces apila la dirección de retorno. Esta posibilidad es una forma primitiva de escalonamiento o seriación. También se puede aplicar el mismo truco a otras 113 . la bifurcación no se realiza y JPOS termina inmediatamente saltando de nuevo al bucle'(ciclo) principal. el micro código deberá primero extraer la palabra direccionada directamente. En cierto modo. Sin embargo. cargando los 12 bits menos significativos del IR en el MAR. La línea 49 es casi idéntica a la línea 22. En JPOS. que de otro modo se hubiera desperdiciado. AODD y SUBO son similares. No cuesta aquí nada eliminar los bits de código de operación y por ello es aconsejable hacerlo. pero en una real el microprograma tendría la oportunidad de examinar los dispositivos de E/S en espera de servicio. En esta máquina no hay nada que hacer. por lo que se necesita decodificar los bits del campo de dirección para distinguirlas. se extraerán los 12 bits menos significativos del IR haciendo el y lógico de éste con la máscara 007777 y guardando el resultado en el PC. rd. En la línea 7 el microprograma no tiene nada que hacer y. Este estilo de programación normalmente se consideraría primitivo si se tratara de un programa de aplicación. Como el resto del código es igual que el de LODL y LODD.

un sumador mejorado. Está claro que una proporción considerable del tiempo de ejecución de cada microinstrucción está dedicado a decodificarla bit por bit. esto es complicado y desperdicia gran cantidad de espacio. una pequeña memoria ROM de control. Si compiláramos directamente a nivel 1. si pudiéramos desplazar el IR 9 bits a la derecha. 114 . El diseñador del nivel O se ocupa de cómo ganar unos pocos nanosegundos en la ALU utilizando algún nuevo algoritmo que reduzca el tiempo de propagación del acarreo. debemos traducirlo primero al nivel 2 y luego interpretar las instrucciones resultantes. donde efectúa una operación de selección múltiple. problemas y técnicas diferentes y. sea eficiente. en la práctica. Dividiendo el problema del diseño de la máquina en varios subproblemas. ya que obtendríamos una máquina lenta. al mismo tiempo. El microprograma realiza las lecturas y escrituras en las cuatro palabras superiores del espacio de direcciones como si lo hiciera con otras cualesquiera. mientras que el microcódigo correspondiente.rutinas de ejecución. para control. un incrementador. aprovechando en lo posible el paralelismo inherente al hardware. en principio. la memoria necesaria sería memoria de escritura. Aunque. No hemos dicho nada de cómo se realiza la E/S. acelera en gran medida la máquina y. Con la ayuda de un compilador. Cada una de esas palabras tendría la primera microinstrucción de la macroinstrucción correspondiente. Ni tenemos que hacerlo. podemos intentar dominar la complejidad intrínseca del diseño de una computadora moderna. Además. de las posiciones O a 127. A la luz de estos ejemplos concretos. El nivel 2 sirve de interfaz entre el compilador y el intérprete. que es muchísimo más cara debido a su gran velocidad. en general. Utilizando E/S por memoria. requiere 4 microinstrucciones de 32 bits en promedio. Esta observación señala que se puede cargar el M PC bajo control del microprograma. una forma distinta de ver la máquina. se advertirá claramente por qué las máquinas se diseñan como una serie de niveles. podría seleccionar entre 128 localidades. El diseñador 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. Con este material fuimos capaces de construir un intérprete programado que llevara a cabo las instrucciones de la máquina de nivel 2. excluyendo la lógica de decodificación de instrucciones. La de nuestro ejemplo consta de poco más que un grupo de 22 registros. En muchas computadoras existentes la micro arquitectura tiene medios físicos para extraer los códigos de operación de las macroinstrucciones y pasarlos al MPC. Se hace por razones de eficiencia y simplicidad. casi siempre se usa algo parecido. la CPU no es capaz de diferenciar entre direcciones de memoria verdaderas y las de los registros de los dispositivos de E/S. el compilador podría generar directamente microcódigo. Por ejemplo. la memoria total necesaria se multiplicaría por ocho. ya que cada nivel se aplica a un nivel de abstracción distinto. borrar los 9 bits más significativos y poner el número resultante en el MPC. Cada una de nuestras macroinstrucciones ocupa una palabra de 16 bits. Aunque este método desperdicia memoria de control. El microprogramador se interesa en como hacer el máximo número de operaciones elementales con cada microinstrucción. La idea básica es comenzar con una máquina física muy sencilla. un registro de corrimiento y algunos circuitos combinacionales para multiplexar. decodificar y secuencializar. podemos traducir programas escritos en lenguajes de alto nivel a instrucciones de nivel 2 e interpretar éstas una a una. Sin duda cada nivel tiene objetivos. No conviene usar la memoria principal para el microcódigo. Si queremos ejecutar un programa escrito en un lenguaje de alto nivel. Perspectivas En este punto conviene detenerse un minuto para reflexionar sobre los fundamentos de la microprogramación.

Entre ambos extremos hay muchos diseños intermedios. En el otro extremo están las microinstrucciones con un pequeño número de campos muy codificados. no puede desplazar ni cargar el MAR. como las 16 de habilitación de salida de los registros al bus A o las que controlan el funcionamiento de la ALU. B. En la figura 4-17 se muestra la lista completa de códigos de operación de las microinstrucciones de esta nueva máquina que llamaremos Mic-2. Por otro lado.. como nuestros campos A. R. Una instrucción vertical extrema tendría solamente un código de operación. Microprogramación horizontal frente a microprogramación vertical Probablemente la decisión más importante sea cuán codificadas deban estar las microinstrucciones. se puede hacer funcionar cualquier máquina con n señales de control aplicadas en los lugares adecuados sin decodificar nada. Las microinstrucciones diseñadas según este principio se denominan horizontales y representan un extremo del espectro de posibilidades. ALU. porque los campos que controlan esas funciones en nuestra máquina ya no estarían presentes. que dice qué hace la microinstrucción. que sería simplemente una generalización de nuestro campo ALU. OP. Los nombres derivan de la manera en que un artista dibujaría sus memorias de control respectivas: los diseños horizontales tienen un número bastante pequeño de microinstrucciones anchas.. no dos. RD. se combinan formando un único campo de 8 bits. etc. y algunos operandos. que suman un total de 12 bits. tienen algunos bits. SP. los campos A. MBR. etc. Si miráramos dentro de la ALU. En una organización de este tipo se necesitarían códigos de operación para leer y escribir en memoria. Con apenas 12 bits por microinstrucción. AC. R1 y R2. veríamos que toda la circuiteria interna está controlada por cuatro líneas. El primer campo es el código de operación. En la lista vemos que cada microinstrucción realiza una única función: si suma. frente a los 32 de la versión original. sólo hay sitio para especificar una operación. hacer micro saltos. Para que funcione la máquina. que sumará el AC al SP. B y C.EL DISEÑO DEL NIVEL DE MICROPROGRAMACIÓN Como cualquier otra cosa en informática. Si fuéramos a construirla Mic-1 con una sola pastilla VLSI. 115 . Para los saltos. WR y AMUX. Una microinstrucción típica sería ADD. ni siquiera mantener activa la señal RD. Cada microinstrucción contendrá ahora tres campos de 4 bits. En resumen. Los siguientes campos son dos registros. Este punto de vista nos obliga a considerar un formato de microinstrucción diferente: hacerlo de n bits. se podrían ignorar abstracciones tales como registros. C y ALU requieren alguna lógica de decodificación antes de que puedan aplicarse a compuertas individuales. como MAR. Para distinguir más claramente entre microinstrucciones horizontales y verticales. En las secciones siguientes veremos algunos de los temas de diseño y los problemas que han de sopesarse. y pensar sólo en las compuertas. se necesitan ciertas señales. el diseño de la micro arquitectura está lleno de limitaciones. uno por señal de control. vamos a rediseñar nuestro ejemplo de micro arquitectura y hacer que se use microinstrucciones verticales. ya que en la esquina izquierda de la figura 3-20 encontrarnos un decodificador de 2 a 4. por ejemplo. Se dice que son verticales. Nuestras microinstrucciones. los verticales tienen muchas microinstrucciones estrechas. que controlan directamente funciones del hardware.

Además. 4-17. Se necesita AND porque el campo R1 lleva tanto el bus A como el C. if r2 = 0 then z:=true rdm:=r1. LSHIFT RSHIFT GETMBR TEST BEGRD BEGWR CONRD CONWR NJUMP ZJUMP UJUMP r1 + r2 Instrucción 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. 116 . B y C de la figura 4-10. En particular. en el sub. Los tamaños y funciones del M PC. lec rdm:=r1. La mayor parte de la porción de control. también quedará igual. el incrementador. análogos a los de A. rim:=r2. a la derecha. Código de operación del Mac-2 Vamos a rehacer la figura 4-10 para mostrar las nuevas microinstrucciones. La ruta de datos. necesitaremos decodificadores de 4 a 16 para los campos R1 y R2.Binario 0001 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 r= 16 * Nemotécnico ADD AND MOVE compl. el Mmux. en lugar de 32). el reloj y la lógica de microsecuenciamiento son idénticos a los del diseño horizontal. La figura 4-18 muestra el nuevo diagrama de bloques. es idéntica a la anterior.ciclo 3. Las tres principales diferencias entre la figura 4-10 y la figura 4-18 son los bloques rotulados AND. NZ y "Decodificación de OP". aún necesitamos el MIR y la memoria de control (aunque esta vez con anchura de 12 bits. representada a la izquierda. Se presenta el problema de que el bus A se carga durante el sub ciclo 2 pero el bus C no puede cargarse en la memoria interna hasta que se hayan estabilizado los registros de A y B. esc Lec Esc if n then goto r if z then goto r goto r Fig.

el registro de corrimiento. la ALU y el registro de corrimiento requieren dos señales cada uno. la lógica de microsecuenciamiento. En total. el diseñador de la máquina debe determinar cuál de las 13 señales que salen del decodificador de OP está activa y cuál no. siendo N su bit más significativo y Z el O lógico de todos sus bits. Para dar un ejemplo de un código de operación de microinstrucción. El resultado es que las 16 señales que cargan datos en la memoria interna se activan bajo las mismas condiciones que antes. La lógica de microsecuenciamiento. se debe generar una matriz binaria de 16 x 13 que dé el valor de cada línea de control para cada código de operación. En efecto. el decodificador de OP genera 13 señales distintas basándose en los 4 bits más significativos de la microinstrucción en curso. que son idénticas a las del diseño anterior. el MBR. la ALU. el ALU trabaja en una microinstrucción pero sólo puede verificar los bits de estado en la siguiente. RD y WR. el MAR.La caja AND hace el Y lógico de cada una de las 16 señales decodificadas con la señal del reloj del sub ciclo 4 y con una señal que proviene de la decodificación de OP y que equivale a la vieja señal ENC. respectivamente. El elemento clave de la nueva micro arquitectura es el decodificador de OP. y se aplican sólo a los dispositivos con dos líneas de control: la ALU. Se necesita esta facilidad ya que en el nuevo diseño. El bloque NZ es un registro de dos bits al que se le pueden hacer almacenar las señales N y Z del ALU. el registro de corrimiento y la lógica de microsecuenciamiento. Para cada uno de los 16 posibles códigos de operación de microinstrucción. NZ. Amux. ambas señales de estado se perderían si no se guardan en alguna parte. Las columnas están rotuladas con los nombres de las señales. La figura 4-19 muestra esta matriz para el Mic-2. Esta caja toma el campo de código de operación y produce señales para controlar la caja AND. Los sufijos B y A significan Bajo y Alto. Como la ALU no tiene donde almacenar N y Z y éstas se obtienen de su salida en cada momento. consideremos 117 .

La figura 4-19 es una forma algo peculiar de representar 13 tablas de verdad. 118 . 01 para salto si N. Ahora consideremos los saltos. que incluso las máquinas hipotéticas de los libros de texto son compatibles con sus predecesoras). Si no la podemos conseguir.BEGRD. algunas de las salidas son: ALUL = A B C D + A B C D = A B D SHH = A B C D MAR = A B C D + A B C D = A B C MSLH = A B C D + A B C D = A B C Sólo deben generarse internamente 15 términos producto. Pues con el uso de una o varias PLA (o ROM). También carga el MAR y activa RD. que son PLA de 12 entradas y 6 salidas. NJUMP genera 01. ya que ABCD no se necesita. Las demás señales de control quedan inactivas. Como hemos decidido que sean compatibles con nuestra vieja lógica de microsecuenciamiento. Si denotamos los cuatro bits de código de operación con las letras A a D. donde el número de fila define implícitamente el valor de las cuatro variables. Todos los demás códigos de operación generan 00. del más significativo al menos significativo. ZJUMP genera 10 y UJUMP general 11. que inicia una lectura en memoria. La mejor forma de hacerlo consiste en emplear una PLA de cuatro entradas y 13 salidas. ¿Cómo construiremos un circuito de cuatro entradas (los bits de código de operación) y trece salidas (las señales de control) que calcule la función de la figura 4-19. 10 para salto si Z y 11 para salto incondicional (la compatibilidad ha alcanzado tales proporciones epidémicas. con lo que ALUH = 1 y ALUL = O. Usa la función 2 de la ALU (selección de bus A). el par MSLH MSLL debe ser 00 para no salto. Entonces la cuestión de cómo construir el circuito se reduce a cómo implementar una tabla de verdad. de cuatro variables cada una. una por columna. Ahora viene la parte interesante. podemos usar tres 74S330.

También se ha conservado la sintaxis. Lo muestra la figura 4-20. Se han dejado las mismas etiquetas para que sea más fácil comparar los dos microprogramas. Asegúrese el lector de que entiende la diferencia entre el microprograma en binario. tal como se carga en la memoria de control. Nótese que las sentencias LMAN de la forma alu = reg usan la micr9instrucción TEST para ajustar los bits N y Z. con los códigos de operación de la figura 4-17). necesitamos reescribir el microprograma. pero hemos usado de nuevo LMAN porque es mucho más fácil de leer. Podíamos haberlo escrito usando un lenguaje ensamblador típico (por ejemplo.Habiendo rediseñado el hardware. 119 . y la versión en lenguaje ensamblador que se da en el texto.

120 .

muchas líneas del original han tenido que dividirse en dos. El precio que hay que pagar por la memoria de control más pequeña es que han de ejecutarse más microinstrucciones por macroinstrucción. En consecuencia. lo que lo hace más barato y fácil de fabricar. plantea serios problemas conceptuales acerca de lo que es la microprogramación. En consecuencia. esto hace más lenta la máquina. Véase.Aunque más largo. que hacen un total de 1920 bits. verticales. también representa un ahorro de 24% en el espacio de la pastilla (chip) ocupado por la memoria de control. La diferencia representa un ahorro de 240¡0 de memoria de control. El segundo usa 160 palabras de 12 bits. como las del Mic-2. Normalmente. El juego de microinstrucciones de la figura 4-17 podría pasar casi por el juego de instrucciones del lenguaje de máquina convencional de una micro-o 121 . En una computadora integrada en una pastilla. tres. las líneas 22 y 27 del primer microprograma. que dan un total de 2528 bits de memoria de control. por ejemplo. La existencia de microinstrucciones muy codificadas. Otra causa que aumenta el número de microinstrucciones es la ausencia de microinstrucciones de tres direcciones. este microprograma es más simple que el anterior puesto que cada línea sólo realiza una operación. e incluso cuatro líneas en éste. las máquinas veloces y caras tienden a ser horizontales y las más lentas y baratas. El microprograma original usa 79 palabras de 32 bits.

El ahorro de memoria en este ejemplo sería: ahorro = 4096 x 100 -4096 x 7 -128 x 100 = 368 128 bits El precio que debe pagarse por el ahorro de memoria es una ejecución más lenta. siendo m<<n. la memoria de control necesaria tiene solamente log2 m (redondeado al entero mayor) bits de anchura. La parte (a) muestra un microprograma de n microinstrucciones de w bits cada una. Por ejemplo. En el microprograma original se podría reemplazar cada instrucción por su dirección en la nanomemoria. Supongamos que un estudio detallado del microprograma muestra que sólo se usan m microinstrucciones diferentes de las 2W posibles. La memoria de control tendría ahora 4096 x 7 bits. La figura 4-21 ilustra el concepto de nanoprogramación. como se muestra en la figura 4-21(b). Si el microprograma de la máquina vertical se guardara en la memoria principal (como sucede en la IBM 370/145. Como la nanomemoria sólo contiene m palabras. Se podría utilizar una nanomemoria especial de m palabras de w bits para guardar cada microinstrucción única. por ejemplo).minicomputadora muy simple. es una minicomputadora con palabras de 12 bits cuyas instrucciones no son mucho más potentes que éstas. El microprograma se ejecuta como sigue. Los bits de este registro se utilizan como señales de control durante un ciclo. Primero se extrae una palabra de la memoria de control y se usa para seleccionar una palabra de la nanomemoria. Considerando que el "significado" de las instrucciones está determinado por el hardware (la PLA o circuito del decodificador de OP). apuntando cada una de sus palabras a una nanoinstrucción.Con una tercera memoria. El microprograma de la figura 4-16 no tiene esa propiedad. La PDP-8. La nanoprogramación es apropiada cuando se repiten varias veces muchas microinstrucciones. se extrae la siguiente palabra de la memoria de control y el proceso se repite. la distinción entre una máquina microprogramada muy vertical y una cableada (no microprogramada) perdería aún más nitidez. se podría decir que el Mic-2 es realmente una máquina no microprogramada en la que se ejecuta un intérprete para otra máquina. Nanoprogramación Los diseños vistos hasta ahora tenían dos memorias: la central (utilizada para guardar el programa de nivel 2) y la de control (utilizada para guardar el microprograma) . Bastaría una nanomemoria de 128 x 100 bits para guardar las microinstrucciones necesarias. por ejemplo. supongamos que el microprograma original tiene 4096 x 100 bits pero sólo aparecen 128 microinstrucciones distintas. Al finalizar este ciclo. Véase a Dasgupta (1979) si se desea profundizar en los aspectos de codificación y paralelismo en el microcódigo. que se extrae y se guarda en el registro de microinstrucción. se pueden realizar interesantes compromisos entre la organización horizontal y la vertical. la nanomemoria. Se necesitan nw bits de memoria de control en total para guardarlo. La 122 . La microinstrucción más frecuente es la que sólo tiene lec y únicamente aparece cinco veces.

se podría usar un reloj maestro con un periodo de 25 nseg. por ejemplo. La otra es derivar estos tiempos basándose en los campos de operación (utilizando una PLA). si ALU tardara entre 75 y 150 nseg en realizar una operación. Cuando ésta se extraiga y se ponga en el registro de microinstrucción. la velocidad de la máquina disminuiría notablemente. consiste en incrementar la 123 . Aunque esto es sencillo. La nanoprogramación es verdaderamente eficaz cuando se usan mucho las mismas microinstrucciones. el microprograma contendría menos microinstrucciones distintas.máquina con la memoria de control de dos niveles funcionará con menor rapidez que la original. en lugar de ponerlo en la nanomemoria (es decir. Estas dos extracciones no pueden traslaparse. Aunque esto constituye un paso hacia adelante en la dirección correcta. Por ejemplo. Mejora del rendimiento Aunque el objetivo de la nanoprogramación es reducir el tamaño de la memoria de control. La primera solución cuesta bits de la memoria de control y la segunda cuesta lógica de decodificación y tiempo. Hasta ahora hemos supuesto que los cuatro sub ciclos tenían la misma duración. es aún demasiado conservador. Si la función de la ALU es la suma. Nos queda averiguar cómo sabe la máquina cuánto debe durar un sub ciclo. Poniendo el número del registro en la memoria de control. las dos microinstrucciones podrían apuntar a la misma nanopalabra. Por ejemplo. Una vez tomada la decisión de hacer que la duración de cada sub ciclo dependa de la operación. incluso al precio de una mayor memoria de control. pocas veces produce el mejor rendimiento. Se puede variar la idea básica para permitir esto con sólo utilizar como parámetro las palabras de la nanomemoria. Otra estrategia consistiría en que cada operación que va a realizarse determine la duración del sub ciclo. durando el sub ciclo correspondiente entre tres y seis periodos. pero más frecuentemente usadas. de modo que sea tan corta como sea posible. Así. una a la memoria de control y otra a la nanomemoria. Si se pudieran contar como iguales dos microinstrucciones casi iguales. el campo de registro se tomará de la micromemoria y no de la nanomemoria. Naturalmente. omitiendo el campo del registro de las nanoinstrucciones). Acelerar o des acelerar el reloj es una técnica difícil. Si los cuatro duraran lo mismo que el peor de los casos. En esta sección examinaremos algunas de las maneras en que se puede modificar nuestra sencilla micro arquitectura para que las máquinas funcionen más rápido. incluso al precio de una ejecución más lenta. Considérese. debería ser la de la suma y no la de seleccionar A. La forma de corregir esto es permitir que la duración de cada sub ciclo sea independiente de la de los demás. por eso lo que se hace es conseguir un reloj maestro con un periodo mucho más corto que la duración del sub ciclo. Otra forma de obtener mayor potencia de la máquina. el sub ciclo 3 de nuestros ejemplos. debemos encontrar una forma de llevar a la práctica esta estrategia. Estos dos criterios de diseño aparentemente incompatibles tienen que ver con dos estrategias de mercadotecnia: la de máquinas baratas y la de máquinas rápidas. cada sub ciclo dura un determinado número de impulsos. probablemente se necesite más tiempo (debido a los retrasos en la propagación del acarreo) que si la operación fuera simplemente seleccionar A. Una de ellas es que la microinstrucción tenga campos que digan explícitamente los tiempos necesarios. ya que invariablemente uno de los cuatro necesita mucho más tiempo que los otros tres. Si la duración del sub ciclo 3 se determinara en el momento del diseño. de la misma forma que se generan las demás señales de control en una máquina vertical. debido a que el ciclo de extracción requiere ahora dos referencias a memoria. con este mecanismo aumenta la anchura de la memoria de control. también se ha invertido gran cantidad de tiempo y esfuerzo en el objetivo opuesto: intentar acelerar la ejecución. ya que la duración de cada sub ciclo está todavía determinada por el peor de los casos en ese sub ciclo. que puede o no compensar la ganancia obtenida con una nanomemoria más pequeña. La duración de cada sub ciclo debe ajustarse a la necesaria para realizar su función. Hay dos posibles soluciones. dos microinstrucciones pueden diferir solamente en un campo que diga qué registro ha de sacarse a cierto bus.

cual de los operandos era menor.las ALU no sólo generan N y Z sino también D y A (acarreo). Si los 4 bits menos significativos fueran O. algunos ejemplos de restas de números de 16 bits en complemento a 2 (octal). no es posible decir. La condición correcta a probar es N O-EXCLUSIVO V.flexibilidad de los microsaltos condicionales. Campo DIR NZDA 10000000 10001000 10001011 10001011 10001011 10001111 10001111 10000000 1001 1001 1001 1000 0000 0000 1100 1100 Dirección hacia donde salta 10001001 10001001 10001011 10001011 10001011 10001111 10001111 10001100 Fig. que compare el registro AC con una palabra de memoria y salte a la siguiente macroinstrucción si AC es menor . La figura 4-23 da algunos ejemplos. muchas máquinas no permiten examinar individualmente los bits de estado de la ALU. esto se convertiría en un salto condicional con 16 alternativas. 4-23. AC es menor que la palabra de memoria pero el resultado de la resta es positiva. Como ejemplo. en lugar de la que termina en 0101. si sólo hubiera cuatro saltos condicionales para cada uno de los bits NZDA. Para mayor flexibilidad. Afortunadamente. Si todos fueran 1. 4-22. Elegiríamos un campo ADDR que terminara en 0101. También podríamos haber usado una dirección de base terminada en 0000. Para realizar la instrucción. Las microinstrucciones situadas en 10001101 y 10000111 traerán el caso AC < memoria y las situadas en 10000101 y 10001111 tratarán el caso contrario. Algunos ejemplos de saltos a múltiples destinos. como se ilustra en la figura 4-22. como 10000101 (binario). Debido al desbordamiento potencial. Sin embargo. En el cuarto ejemplo de la figura 4-22. en donde V indica la presencia o ausencia de desbordamiento. la que puede dar como resultado un desbordamiento. y realizaríamos el salto. con sólo ver el bit de signo del resultado. la macroinstrucción OMITE SI MENOR requeriría muchas microinstrucciones. (El hardware asigna a V el valor de 1 siempre que el acarreo al bit de signo difiera del acarreo del bit de signo. También se muestran los bits N y D de cada resultado. se requiere restar la palabra de memoria de AC (o de una copia de éste). pero estas direcciones 124 . considérese una macroinstrucción OMITE SI MENOR. se convertiría en salto incondicional a una dirección específica terminada en 1111. un único bit de las microinstrucciones provoca el O lógico de los bits NZDA con los cuatro bits menos significativos del campo ADDR y se salte al resultado.) AC Men 000100 000050 000030 N=0 V=0 000100 170000 010100 N=0 V=0 077777 177775 100002 N=1 V=1 100001 000010 077771 N=0 V=1 000010 100001 100007 N=1 V=1 Fig. basándose en los bits NZDA Con esta ayuda la instrucción OMITE SI MENOR sería mucho más fácil de interpretar. No se necesita ninguna decodificación adicional. En cambio. la mayoría de .

Un salto incondicional indica a la computadora que detenga la extracción de instrucciones en forma consecutiva y se dirija a una dirección específica. Es claro que con este tipo de control del secuenciamiento de las microinstrucciones. Los saltos pueden clasificarse en tres categorías: incondicionales. etc. Por lo general las instrucciones iterativas decrementan un contador de iteraciones y saltan al inicio si el contador no es cero (v . se ejecutará en el ciclo 5. 125 . Un ejemplo típico es una instrucción que checa un registro y salta si éste contiene un valor de cero. Extracción de instrucciones Decodificación de instrucciones Cálculo de direcciones Extracción de operando Ejecución 1 1 Ciclo 2 3 4 2 B 1 2 B 1 2 1 5 6 7 B 2 B 1 2 B 8 4 9 5 10 11 6 7 8 9 4 5 6 7 8 4 5 4 6 5 4 7 6 5 Fig. en lugar de una cada cinco ciclos. todavía hay iteraciones por hacer). Por ejemplo. La instrucción marcada como B es un salto condicional Desafortunadamente. la tarea de situar las microinstrucciones en la memoria de control puede causar verdaderos dolores de cabeza. evitando agotar algún tipo de dirección. En virtud de que el extractor de instrucciones no sabe cual sigue sino hasta que se ejecuta el salto. llamada blanco del salto. si la instrucción 4 se extrae en el ciclo 8. Considérese lo que sucede en la línea de procesamiento (pipeline) de la figura 4-24 cuando se encuentra una instrucción (señalada como B) de salto condicional. Estas instrucciones son un caso especial importante de los saltos condicionales. En caso contrario. ya que son las únicas disponibles para saltos con 16 posibilidades. ¿A dónde debería saltar cada una de estas microinstrucciones? Ciertamente no a una dirección de la forma xxxx0000. Una forma más para acelerar la máquina consiste en conformar el hardware con varias unidades funcionales y después unirlas para que trabajen en línea o en forma escalonada (pipeline). La decisión debe tomarse con cuidado. hay estudios que han demostrado que alrededor del 30% de las instrucciones son saltos y éstos hacen estragos en la línea de procesamiento. ya que son demasiado valiosas.. así que la selección de direcciones debe hacerse con mucho cuidado. se decodifica en el 9.son muy valiosas. se sabe qué instrucción sigue. La siguiente instrucción a ejecutar debería ser la siguiente a la del salto. ya que la palabra siguiente (excepto si es la última) se utiliza como uno de los posibles destinos del salto. En la figura 4-24 se muestra que si la instrucción 1 se extrae en el ciclo 1. Un salto condicional verifica una condición y salta si ésta se cumple. Sólo después de que termina el ciclo 7. se ejecutará en el ciclo 12. Bajo condiciones óptimas. 4-24. En consecuencia la línea se vacía.g. ya que se sabe de antemano.* En la figura 2-5 se observó cómo funciona una computadora con cinco unidades escalonadas. que casi siempre habrá ese salto. pero también podría ser la dirección a la cual saltó. excepto las de la forma xxxx1111. En forma parecida. Unidad de procesamiento en línea de 5 etapas. Por tanto. ya no es posible verificar el bit de acarreo C. pero también podrían necesitarse tarde o temprano las demás. dando un promedio de ejecución de una instrucción por ciclo. no se lleva a cabo el salto y el control continúa en la secuencia actual. en cada ciclo de ahí en adelante se ejecuta una instrucción. Las instrucciones están etiquetadas con números. una vez que se han agotado las direcciones pares. no debe elegirse a la ligera. condicionales e iterativos. se demora y no puede continuar hasta la ejecución de éste. La primera instrucción ejecutada después de un salto de 16 alternativas debe tener un salto incondicional.

hacia que dirección será el salto.P. si se pudiera predecir la dirección del salto.3 y P. el microprograma construye. es muy posible que el salto no se lleve a cabo. Si por el contrario el salto se efectúa. luego. Pj = 0. Asignando los valores (típicos estimados) de b = 4. McFarljng y Hennessy. estos deben ser restaurados. el programa binario puede "parcharse" con el código de operación apropiado (probablemente se realice. Si resulta que en efecto. Resulta instructivo hacer un modelo de la pérdida en el desempeño. el compilador hace una suposición para cada una de las instrucciones de salto que genera. Esta opción presenta sus propios problemas. Con este enfoque. Resulta evidente que con un salto en una de cada tres instrucciones. la probabilidad de que el salto se realice. en las instrucciones iterativas que el salto regresará al inicio de la iteración. En el método de predicción dinámica. Otra opción es determinar por anticipado en la línea. para programas de uso intensivo. En la fórmula para la eficiencia se puede " entonces reemplazar P. Algunas mediciones han mostrado que de esta manera no es difícil lograr un 90% de precisión. En muchos casos se utilizan diferentes instrucciones para estos casos y el solo hecho de observar el código de operación proporciona una buena sugerencia. registrando. por la probabilidad P w de que la suposición sea falsa. el salto no se realiza. una tabla con las direcciones que contienen saltos y guarda un registro del comportamiento de cada uno. Algunas pruebas. Sea b la penalización por salto. Lo más sencillo consisté en esperar que el salto no se realice y continuar procesando como si el salto fuera una simple instrucción aritmética. Sea P. la disminución en el desempeño es sustancial. Otro esquema más elaborado para los diseñadores de máquinas consiste en proporcionar dos códigos de operación para cada tipo de salto y hacer que el compilador use el primero si cree que el salto se llevará a cabo y el segundo en caso contrario. Sea Pj la probabilidad de que una instrucción sea un salto. 1989 y. = 0. La predicción de los saltos no es el único punto de ataque. 1987.. Luego la eficiencia de ejecución es 1/(1 + bPjP. en cuyo caso sabe en donde continuar con la extracción de la siguiente instrucción. se podría extraer la instrucción apropiada " (siguiente) y eliminar la penalización. Las primeras se pueden hacer con un comparador.)(1)] Un poco de álgebra revela que el tiempo promedio por instrucción es 1 + bPjP. siempre que el microprograma encuentre un salto. Con predicción estática. 1988).Hwu y col. como el salto si es igual son mucho más fáciles de hacer que en salto si menor que. Lilja. se pueden correr primero en un simulador. ¿Qué puede hacerse para mejorar el desempeño? Para empezar. hace una verificación rápida en una etapa temprana de la línea para ver si puede resolver el salto de inmediato. Suponer por ejemplo. Cuando se trata de una condición improbable. Si una instrucción eliminada modificó a uno o más registros.65. tal como una llamada al sistema que genera un código de error. Existen dos clases de predicciones: estáticas (al tiempo de compilación) y dinámicas (al tiempo de ejecución). El tiempo promedio de ejecución (en ciclos) se puede calcular como la suma ponderada de los dos casos: instrucciones regulares e instrucciones de salto. En forma alternativa. de modo que requiere de alguna ayuda del hardware. Este método tiende a hacer más lenta la máquina al llevar el registro. 126 . 1986. la máquina corre a menos del 60% de su capacidad potencial. Tiempo promedio de ejecución = (1. no se ha "perdido nada.A la pérdida de cuatro ciclos causada de hecho por el salto se le denomina penalización por salto. En algunas máquinas. Se han realizado una gran cantidad de investigaciones alrededor del problema de recuperar algo de este desempeño (DeRosa y Levy.). lo que significa que debe haber un mecanismo para grabar los valores originales. probablemente no se realice). es correcta la mayoría de las veces. se deben eliminar las instrucciones que estén actualmente en la línea y empezar de nuevo. durante la ejecución. mientras que las segundas requieren de un ciclo completo de trayectoria de datos para hacer una resta.Pj)(l) + Pj[Pt1 + b) + (1. el comportamiento de cada salto. se puede modificar un registro como el resultado intermedio de un cálculo de direcciones.

se puede lograr un número limitado de traslapes entre las microinstrucciones de extracción y ejecución. then declaración (b) Fig. los microprogramadores y los diseñadores de compilado res tuvieron que trabajar en estrecha coordinación durante el diseño. el cual no está en lenguaje Pascal legal. Si la máquina esperara a que las líneas de estado de la ALU estén disponibles antes de iniciar la extracción de la microinstrucción siguiente. por ejemplo. Estos valores están disponibles al comienzo de cada microinstrucción y por tanto puede empezar la siguiente extracción inmediatamente. el compilador puede tratar de encontrar algo útil para que la computadora trabaje. decodificación. Para usar esta técnica con efectividad. No es necesario decir que esto complica en gran medida la vida del microprogramador. Desde luego. de manera que el microprograma puede librar la cuestión con una comparación en lugar de una resta. si la siguiente microinstrucción pudiera extraerse de alguna manera durante el sub ciclo 4. cuando el programador escribe una iteración variando i desde 1 hasta 10. por ejemplo. seria demasiado tarde.. . regrese por un momento a la máquina de ejemplo. (b) Como pudiera ser el tratamiento por parte del compilador Si todo lo demás falla. las cuales sin lugar a duda deben ejecutarse. este método se utiliza en ocasiones en las computadoras de orden superior. a := b + c. pero muestra el orden de eventos. en las que el aspecto importante es el desempeño y no el precio. de modo que no es posible formar estas líneas de procesamiento. ya no se necesitaría el sub ciclo 1 y el reloj sólo generaría impulsos para los sub ciclos 234234234. if b < c then declaración (a) if b < c a := b + c. etc. de la figura 4-25(a). Para hacerlo. si cada trayectoria se topa con otro salto antes de resolver el primero. el microprograma puede pasar la palabra por la ALU en una microinstrucción que no contenga un salto. por supuesto. así que no hay necesidad de hacer ninguna predicción ni eliminación. Después de toda esta teoría respecto a lo que podría hacerse. El ciclo habría prácticamente terminado y se podría conseguir poco traslape. luego hace la operación aritmética. No obstante. Por ejemplo. el compilador puede verificar i para ver si es igual a lo. Para ocuparse de aquellos saltos que no se pueden resolver en las primeras etapas. siempre existe la posibilidad de seguir ambas trayectorias en paralelo. Primero genera el código para hacer la comparación. En la figura 4-10.. para enfrentar el peor de los casos. En algunas máquinas el problema se resuelve usando las líneas de estado de la ALU del ciclo anterior que. Un compilador con una optimización hábil pudiera producir un código más parecido al de la figura 4-25(b). La siguiente microinstrucción 127 . le siguen varias instrucciones ordinarias.Los compiladores pueden ser de gran ayuda. Considérese la declaración aritmética seguida de una comparación. mientras espera que se ejecute el salto. se requieren dos líneas de procesamiento en el hardware y no evita el problema de eliminación. Esta. en vez de ver si es menor de II.El principal problema surge con las rnicroinstrucciones de salto condicional. (a) Un fragmento en lenguaje Pascal. Desde el punto de vista técnico. es posible escribir microprogramas para una máquina de este estilo en una forma razonable. para examinar alguna palabra de la memoria de anotaciones y saltar si es negativa. Después de que el salto ha ingresado en la línea de procesamiento. mucho antes de que se termine la ejecución de la microinstrucción en curso. pero con cambios menores al microprograma. 4-25. no tiene distintas unidades de hardware para extracción. Probablemente no sea la mejor idea tener "flojeando" algunas docenas de líneas de procesamiento. la que también es una forma de realizar las líneas. el asunto se vuelve aún más complicado. deberán guardarse en biestables para evitar que se desvanezcan.

wr. 11: alu:=tir. Además. goto 10. se ha iniciado una lectura en memoria de una palabra incorrecta. que un análisis estadístico mostró que los programas del Mac-l usan PSHI muchas más veces que POPI. y saltar. puede ser posible o no "c" abortar una lectura de memoria a medio realizar sin perturbar el funcionamiento.será una no-operación con un salto condicional. 57:mar:=sp. sp:=sp + 1. incluso POPI será más rápida que antes. cuando se llega a la línea 56. En este ejemplo tenemos suerte. Por ejemplo. 53:mar:=ac. simplemente la terminamos y luego iniciamos la lectura correcta. Entonces podríamos proceder como se indica en la figura 4-24(b). 59:mar:=ac. 128 . Si no podemos abortarla. Los resultados se muestran en la figura 4-26(a). basta poner la microinstrucción común en la línea 12 para ocupar la máquina mientras se realiza el salto. Por tanto. que se habían memorizado. 4-26. si el uso del traslape reduce el tiempo básico de microinstrucción en 15%. lamentablemente no empiezan por la misma microinstrucción. el traslape de la extracción y la ejecución de las microinstrucciones se hace de tal modo que. lo que no es muy deseable. 58:rd. el microprogramador podría hacer una hipótesis de dónde suele saltar la microinstrucción y empezar a hacer el trabajo que probablemente se necesite. Supongamos. rd. No vamos a continuar profundizando en el tema. al principio de la ejecución de la microinstrucción la elección de la microinstrucción n + 1 ha de hacerse utilizando los bits de estado de la ALU de la microinstrucción n .1. Es decir. He aquí un ejemplo sencillo: rescribimos las líneas 11 a 18 de la figura 4-16 para una máquina con extracción y ejecución traslapadas de microinstrucciones. no hará nada excepto examinar los bits de estado de la ALU. Un ejemplo menos elegante es el de la figura 4-26(b). 14ac:=mbr + ac. ya que después de ejecutar la línea 11 sabemos que seguirá el código de ADDD o de SUBD. Sin embargo. en muchas máquinas. sin embargo. Según los detalles específicos del hardware.rd. goto 0. pero. goto 10 56:rd. Por desgracia. goto 0 (a) 52:alu:=tir. pero con esto basta para entender completamente la definición de microprogramación dada por Rosin. que empiezan por la misma microinstrucción.if n then goto 56 54:sp:=sp + (-1). rd. El precio a pagar por programar en forma razonable es doblar la duración del salto. (a) Un fragmento en lenguaje Pascal. 12:mar:=ir. 16:ac:=ac + 1. wr. (b) Como pudiera ser el tratamiento por parte del compilador La situación se volvería en extremo compleja si se utilizaran saltos condicionales de alternativas múltiples.rd. rd 55:mar:=sp. pero para POPI. En la línea 52 sabemos que vamos a entrar en la micro rutina de PSHI o en la de POPI. sería necesario eliminar parte de lo hecho. formados haciendo el O lógico de NZDA con los bits menos significativos de ADDR en vez de comprobaciones sobre los bits individuales. 17:a:=inv(mbr). La única solución es conseguirse un frasco lleno de aspirinas y tratar de sacar el máximo provecho de cada situación. (b) Fig. Para PSHI todo va bien. if n then goto 16 13:rd. En este ejemplo POPI requiere 15 microinstrucciones en lugar de las 13 de la figura 4-16. si el salto fuera a otra alternativa. 18:ac:=ac + a.

Es más. se pueda accesar muy rápido. en las que prácticamente no hay límite y el precio no representa objeción). mejor es el desempeño general. A la memoria pequeña y rápida se le llama caché (del francés cacher que significa esconder) y está bajo el control del microprograma. la velocidad de la memoria rápida y la capacidad de la memoria lenta. es común que la siguiente referencia se realice en los alrededores de A. a bajo precio. Podemos formalizar este cálculo llamado c al tiempo de acceso a la memoria caché. De sumo interés son las técnicas conocidas para combinar estos tipos de memoria a fin de obtener. en las que un número limitado de instrucciones se ejecutan de manera repetida. debe permanecer ociosa durante un tiempo sustancial. Se le llama principio de localidad a la observación de que las referencias a memoria realizadas en un intervalo de tiempo corto. 1989. Un ejemplo sencillo es un programa en sí.. Smith. es común que en un programa manejador de matrices se efectúen muchas referencias a la misma matriz. 1982. Se puede encontrar más información en (Agarwall op. En realidad. tienden a usar sólo una fracción de la memoria total. En la figura 4-27 se ilustra una distribución común de la CPU. y Wang op. Kabakibo op.. La idea general es que cuando un palabra es referenciada. es común que la CPU establezca una lectura de memoria durante un ciclo del bus y no obtenga los datos hasta dos o tres ciclos más tarde. se describirá cómo se utilizan y funcionan estas memorias. Entre más grande es k. 1983. Lo que esto significa en la práctica es que después de que la CPU envía una solicitud a la memoria. antes de cambiar a otra actividad. Desde hace años es sabido que los programadores no accesan las memorias en forma completamente aleatoria.it'1989. cit. de modo que la siguiente vez que se utilice. las instrucciones se extraen de localidades de memoria consecutivas..Kessler op. 1989). Farrens y Pleszkun. los CPU también lo han hecho. el problema no es de tecnología sino económico. En seguida. con excepción de los saltos y las llamadas a procedimientos.Memoria caché Por tradición. Si una referencia a memoria dada. Si una palabra se lee o escribe k veces en un intervalo corto.. es ala dirección A. Lo preferible seria una gran cantidad de memoria a un bajo precio. aguardando a que la memoria responda. cit. 198. Pohm y Agarwall. y representa la base para todos los sistemas de memoria caché. la mayoría del tiempo de ejecución del programa se emplea en iteraciones. En forma parecida. las CPU han sido siempre más rápidas que las memorias y aunque se han desarrollado las segundas. Przybylski op. m 129 . cLt. cit. la computadora necesitará de 1 referencia a la memoria lenta y k -1 referencias a la memoria rápida. Como se ha visto. se le trae de la memoria grande y lenta hacia la caché. 1989. pero son tan caras que equipar a una computadora con un megabyte o más es impensable (excepto quizá para las supercomputadoras.. De ahí que la elección se reduce a tener una pequeña cantidad de memoria o una gran cantidad de memoria lenta.7. manteniendo así el desequilibrio. aun cuando no haya estados de espera. 1989. Los ingenieros saben como construir memorias tan rápidas como las CPU. la memoria principal y la caché. cit.

h)m Cuando h tiende a 1. cuando la palabra fue localizada en la caché. Si el programa completo y sus datos utilizan de 1024 palabras. Se utilizan dos formas diferentes de organización de la caché. se necesita una referencia a memoria cada vez y el tiempo de acceso se aproxima a c + m. requiere que la memoria pueda detenerse sobre sus pistas. Al inicializar la computadora. esta estrategia es más complicada pues. cuando h tiende a 0. la segunda referencia puede iniciarse en paralelo con la búsqueda en la caché. para indicar que ninguna entrada a la caché es válida. Al no encontrarlo. Para los tres tipos. todas las referencias pueden ser satisfechas en la memoria caché y el tiempo de acceso se aproxima a c.h.al tiempo de acceso a la memoria principal y h a la proporción de aciertos. En algunos sistemas. son aspectos que maneja el microprograma. enviará una solicitud al bus para extraer de la memoria la palabra 0. junto con un bit de Validez que indica si el renglón está actualmente en uso o no. dividida (de manera conceptual) en bloques consecutivos de b bytes. cuyo ejemplo se muestra en la figura 4-28. Por otra parte.. más y más renglones de la caché se marcarán como válidos. Al correr el tiempo. cada uno de los cuales contiene un bloque y su número correspondiente. sin hacer ninguna referencia a la 130 . Sin embargo. todos los bits de Validez toman el valor O. En este tipo de caché el orden de los accesos es aleatorio. En el pequeño ejemplo del párrafo previo. lo que da un total de 2m / b bloques. algunos autores definen también la proporción de fallas como 1. El ejemplo de la figura 4-28 ilustra una caché con 1024 renglones y una memoria con 224 bytes. Si esta palabra se necesita de nuevo. El microprograma checa todos los renglones de la caché buscando uno que sea válido y contenga el bloque número 0. se asume que la memoria sea de 2'. de modo que si no encuentra la palabra en ésta. Consiste en cierto número de renglones o líneas. h = (k -1)/ k. junto con una tercera que es un híbrido de las dos primeras. que es la fracción de todas las referencias que pueden ser satisfechas fuera de la caché. todo el programa y sus datos aparecerán en la caché y correrá a mayor velocidad. Cada bloque tiene una dirección que es un múltiplo de b. El primer tipo es la memoria caché asociativa. dividido en 222 bloques de 4 bytes. El algoritmo básico de búsqueda en la caché y el iniciar (o detener) la referencia a la memoria principal dependiendo del resultado de dicha búsqueda. El tamaño b del bloque es por lo general una potencia de dos. Suponga que la primera instrucción hace referencia a la palabra de 32 bits que se encuentra en la dirección 0. bytes. el ciclo de memoria ya ha comenzado. primero un tiempo c para verificar (sin éxito) la caché y luego un tiempo m para efectuar la referencia a memoria. eliminando la necesidad de una operación del bus. Con estas definiciones podemos calcular el tiempo medio de acceso de la siguiente manera: tiempo medio de acceso = c + (1. la próxima vez será tomada de la caché.

el número de renglón se calcula como 2048 módulo 1024. La figura 4-29(a) muestra a la caché después de haber procesado las tres direcciones. Para hacer este punto más claro. se han creado 1024 clases de equivalencia basada en los números de bloque módulo el tamaño de la caché. la caché asociativa dispone de un hardware especial que puede comparar cada entrada con el número de bloque dado en forma simultánea. El número de bloque correspondiente a la dirección 8192 se calcula dividiéndola entre 4 (tamaño del bloque del ejemplo).4096. Mientras que las memorias caché de mapeo directo eliminan el problema de buscar. la forma de señalar cuál está en un momento dado en dicho renglón es poner parte de la dirección en el campo etiqueta de la caché.. caen en el renglón 0. consiste en que cada renglón contiene el número de bloque y su entrada. crean por otro lado un nuevo problema. lo que es lo mismo que usar 10 bits de orden inferior de 2048. de modo que esa es la etiqueta. el microprograma debe calcular el número del bloque relevante (fácil) y luego buscar ese número de bloque en la caché (difícil).4100. 8192. Por ejemplo. Los dos bits de orden inferior son siempre 0 (ya que la caché trabaja con bloques enteros y éstos son múltiplos del tamaño del bloque. Este tipo de hardware hace que dicha memoria sea cara. Es muy fácil construir hardware que extraiga directamente el número de renglón y la etiqueta. Cuando se presenta una dirección de memoria. se mapean al renglón 1 y así sucesivamente. se inventó la memoria caché de mapeo directo. En el capítulo 6 se abordan otros algoritmos posibles bajo el título de memoria virtual. las palabras en las direcciones 4. En la figura 4-29(b) se puede ver la dirección en forma separada. La VAX y muchas otras máquinas seleccionan un renglón en forma aleatoria. etc.. Este tipo evita la búsqueda poniendo cada bloque en un renglón cuyo número se puede calcular fácilmente a partir del número del bloque. Para reducir el costo. En el ejemplo de la figura 4-29 se puede observar que las palabras en las direcciones 0. En "efecto. En seguida. 4096. cómo indicar cuál de las muchas palabras que corresponden al renglón lo está ocupando. etc. 131 . el número de renglón que corresponde a la dirección A es igual a (A/4) módulo 1024. Con bloques de 4 bytes (una palabra) y 1024 renglones. En seguida está el número del renglón (10 bits) y por último la etiqueta (12 bits). 8196.memoria a través del bus. Si se necesita más de 1024 palabras. el renglón 0 puede contener cualquiera de las palabras 0. para obtener 2084. el número de renglón puede ser el número de bloque módulo el número de renglones. etc. de cualquier dirección de memoria. Los 12 bits de orden superior contienen un 2. El número de renglón es 0. considérese una instrucción en la dirección 8192 que mueve la palabra ubicada en la dirección 4100 a la 12296. En la práctica. . en algún momento la caché estará llena y un renglón previo deberá descartarse para dar lugar a uno nuevo. En el ejemplo. 8192. 4 bytes en el ejemplo). El aspecto que distingue a la memoria caché asociativa de los otros tipos. Este campo contiene aquella parte de la dirección que no puede calcularse a partir del número de renglón. la decisión de cuál eliminar debe hacerse muy rápido (en nanosegundos). A fin de evitar una búsqueda lineal. en donde ocurre el mismo problema. en lugar de hacerlo en un lazo de microprograma.

casos especiales de la asociativa agrupada. ambas direcciones se mapearían al renglón 1. pues nunca se presentan conflictos. 132 . A la memoria caché con varios registros por renglón se le denomina memoria caché asociativa agrupada y se ilustra en la figura 4-30. Dependiendo de los detalles del microprograma. todos los registros de la caché estarán en el mismo renglón y habrá que distinguirlos sólo por sus etiquetas ya que todos caen en la misma dirección. Las memorias caché asociativas y de mapeo directo tienen diferentes puntos fuertes y débiles. Este caso es sólo una caché asociativa. la caché asociativa tiene una mayor proporción de aciertos para un número dado de renglones. La salida de esta dificultad consiste en expandir la caché de mapeo directo con más de un registro por renglón.El hecho de que muchos bloques se mapeen en un mismo renglón puede causar problemas. Tanto la caché asociativa como la de mapeo directo son de hecho. La meta. después de todo. Si n = 1 se regresa a una memoria caché de mapeo directo con un registro por renglón. Por otra parte. Esto no es un desastre en sí pero sí se degrada el desempeño de la caché si muchas palabras de las utilizadas resulta que están en el mismo renglón. tenía dos registros por renglón. Si se reduce el número de renglones a 1. mientras que la otra sería purgada. por ejemplo. es mejorar el rendimiento. La PDP-11/70. No se puede dar el caso de que k palabras importantes no puedan ubicarse simultáneamente en la caché porque tuvieron la mala suerte de caer en el mismo renglón. la dirección que se calculara después permanecería en la caché. ya que puede encontrar el renglón adecuado indexando en la caché con una porción de la dirección como índice. la de mapeo directo es más sencilla. Supóngase que la instrucción moviera la dirección 4100 a la 12292 en lugar de ala 12296. fácil de construir y tiene un tiempo de acceso más rápido.

En los ejemplos. cit. Otra parte importante en el diseño de la caché es cómo manejar las escrituras. así que algunas extracciones pueden desperdiciarse. puede resultar más simple usar la caché con escritura a memoria y aceptar el tráfico del bus. pero agrega complejidad al sistema. Además de determinar el número de renglones. así que sería deseable tener dos niveles de caché. Una estrategia diferente es escribir directamente a memoria. se hace una solicitud ala caché en el nivel de tarjeta. Ambos métodos descritos se encuentran en uso. Una estrategia consiste en extraer la palabra en la caché y luego actualizarla. En la primera denominada con escritura a memoria. Sin embargo. si una CPU inicia una transferencia de entrada / salida de memoria a disco y la memoria está incorrecta (porque palabras que se modificaron recientemente aún no han sido copiadas a memoria desde la caché). 1988. o más palabras. existen aquí ciertas consideraciones. Este enfoque asegura que los registros en la caché son siempre los mismos que los correspondientes a la memoria. una en la pastilla de la CPU y otra en la tarjeta. 4. es qué hacer si una escritura provoca una pérdida en la caché. se escribirán datos incorrectos en el disco. Debido a la falta de área en la pastilla. y Smith. se utiliza la memoria principal. si existen muchas escrituras. Por lo general se utilizan dos estrategias. 1986. Al mejorar la tecnología de los circuitos integrados. Al igual que en todos los demás aspectos de diseño de la caché. La otra política de escritura llamada retrocopiado. La desventaja es que puede no necesitarse todas las palabras. es necesario un bit en cada registro de la memoria caché que indique si éste ha cambiado desde que se cargó en ésta. Si falla. 1988. 1987). pudiera ser mejor utilizar el retrocopiado y hacer que el microprograma explícitamente limpie la caché por completo antes de iniciar una operación de E/S.. Short y Levy. Una ventaja de usar un tamaño grande de bloques es que hay menor gasto general para extraer un bloque de ocho palabras que para ocho bloques de una palabra. estas memorias son pequeñas.Cuando se diseña cualquier computadora real. se ha utilizado (por simplicidad) una palabra de 32 bits. 8. A este aspecto se le conoce con el nombre de política de asignación de escrituras. Casi todas las computadoras de mediana y gran escala utilizan alguna forma de esta técnica. los diseñadores deben también seleccionar el tamaño del bloque. Otro aspecto de diseño relacionado con las escrituras. Este problema se puede evitar. el uso de la memoria caché es una técnica importante para incrementar el rendimiento de un sistema. se realiza siempre una intensa simulación de la caché para observar el desempeño que se está adquiriendo ya que precio. sino que sólo lo hace cuando un registro es eliminado de la caché para dar lugar a que uno nuevo ocupe ese renglón. 1988. ha sido posible poner caches muy rápidas. en especial si el bus permite transferencias en bloque. Es obvio que con escritura a memoria cause más tráfico del bus que el retrocopiado. Si no se puede encontrar una palabra en la caché integrada en la pastilla. no actualiza la memoria siempre que cambia la caché. Considerando todo lo anterior. cuando una palabra se escribe en la caché de inmediato se escribe en la memoria. Si el porcentaje de lecturas es más alto que el de escrituras. Se puede encontrar información adicional sobre el tema en (Hill. directamente en la pastilla de la CPU. Przybylski op. Por otra parte. 133 . Cuando se utiliza el retrocopiado. pero no extraer la palabra a la caché excepto en lecturas. si se está usando caché con escritura a memoria. pero también es posible y se usan con frecuencia 2.

CONCLUSIÓN 134 .

BOLILLA II (Parte 3): EL NIVEL DE MAQUINA CONVENCIONAL 135 .

......................................22 Spoll: ....................................................................................................................19 Manejo de interrupciones:................14 HARDWARE Y SOFTWARE: ..13 FUNCIONES Y ACCIONES:.....................................................................22 Multipexor por bloques: ...................................15 Arquitectura ......................................................................................................................................................................14 Software: ..........................................................................................................................................................................................................................................................................................................Componentes Básicos:...............26 INDICE............................................................................................................................................20 TECNOLOGÍA DE CANALES:.....................................4 INDICE..................................................................................................................................................................................................................................................................................................35 COMPUERTAS Y ALGEBRA BOOLEANA..........................................................19 Dispositivos de E/S.............................................................................................5 INTRODUCCIÓN...................................................................................................................1 BOLILLA I: LA COMPUTADORA...............................................21 Multiplexor: ............................................................................21 Selector............................................................................................................................................................................................................................................................15 Periféricos: ...........................................................................37 136 ....................................................................................................................................................................18 Arbitraje del bus:........35 Compuertas...................................................................................................13 Computadora y Circuitos:.............................................................................................................................................23 Introducción: .........................................................................20 Canales de e/s.....15 Unidad aritmético-lógica:........................................................................................................15 Núcleo de la computadora: .............................21 TIPOS DE CANALES:.............................................................................................................................................................................................................................................13 Para qué sirve una computadora?:..........................................................................................................................................................22 SISTEMA OPERATIVO....27 INTRODUCCIÓN..............................................35 Algebra booleana.............................14 Hardware:...........................................................................................................23 ¿QUÉ ES UN SISTEMA OPERATIVO?..........................................................................................................................................16 Buses síncronos y asíncronos: ..........................19 Solicitud del Bus............................................................................................................................................15 Memoria:(Memoria Central)....................................................................................................15 Unidad de Control:...............................................................................................................................................................................................................................19 Ejemplo de encadenamiento margarita:........................................................................................34 EL NIVEL DE LOGICA DIGITAL......................................13 CONCEPTO:.........................................................25 BOLILLA II (Parte 1): EL NIVEL DE LOGICA DIGITAL........................................................................15 BUSES DE COMPUTADORAS:............................................................................14 Al software se lo clasifica en dos grupos: ...................12 LA COMPUTADORA...................................INDICE INDICE GENERAL..................................................................................................................................................................................................................................24 CONCLUSIÓN.................................................................................................................................

...........................90 Multiplexores y decodificadores ...............92 Unidades aritméticas y lógicas y registros de corrimiento ......95 UNA MICROARQUITECTURA TIPICA .....................................................................................................96 Microinstrucciones ....Implementación de funciones booleanas .......................................................................................53 Registros de corrimiento...................................................................................81 INTRODUCCIÓN........................................................................................70 BUSES ASINCRONOS.................................................74 Manejo de interrupciones ..........47 Multiplexores ..88 EL NIVEL DE MICROPROGRAMACIÓN ............................94 Encapsulado de los componentes .............................................................................................................................103 137 ..........................................................47 Decodificadores ....................77 CONCLUSIÓN.....80 INDICE..........................................................................................................90 Registros ...................................................................................................................................................64 MICROPROCESADORES y BUSES.................................................................................................................................................................................................................40 CIRCUITOS DIGITALES BÁSICOS...........................................................................68 Buses síncronos ............................................................................................................................................55 Relojes ...........................90 Buses ...............................................................96 La ruta de datos ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................89 REPASO SOBRE EL NIVEL DE LÓGICA DIGITAL ...............................................57 Biestables........................................................................66 Microprocesadores .................................................................................................................................59 Flip-flops y registros...............................................................................................102 UNA MACROARQUITECTURA TIPICA ........................................................................................................................................................................93 Memoria principal .................................................................................................................................................................49 Comparadores ...................................................................51 Arreglos (matrices) lógicos programables ...........44 Circuitos integrados .......38 Equivalencia entre circuitos...........................................................................................................................59 Registros...............................................55 MEMORIA............................................................................................................................................................................73 Arbitraje del bus ......................................................................92 Relojes ...................................................................................................................79 BOLILLA II (Parte 2): EL NIVEL DE MICROPROGRAMACIÓN.............................................................................................................................................................................................................................51 Circuitos aritméticos...............................................................................................................54 Unidades aritméticas y lógicas.........................................................................................................59 Biestables D sincronizados...................44 Circuitos combinacionales ................................................................................................................................................................................61 Propiedades de las memorias.................................................................57 Bieslables SR sincronizados...........................................................................................................................................................................................................................................................................................................................100 Secuenciamiento de las microinstrucciones ............................53 Sumadores ....................................................................................................................................................................66 Buses de computadora................................................98 Cronología de las microinstrucciones ...........................................................................................................................................60 Organización de las memorias...............................................................

110 El lenguaje micro ensamblador .........................122 Mejora del rendimiento ....................................................................................135 BOLILLA II (Parte 3): EL NIVEL DE MAQUINA CONVENCIONAL......149 La PDP-11..107 MICROPROGRAMACIÓN: UN EJEMPLO ...................................................................................................................................................153 Notación polaca inversa.......................173 Procedimientos ..........................................................................................................................................................................................................................110 El ejemplo de microprograma .................151 Indexación......................................................................................................................111 Observaciones sobre el microprograma .............................................................................157 Ejemplos de direccionamiento................................................173 Flujo de control secuencial y saltos .............................................................................................................................174 138 ..................................................................................................................................................................................166 Control de iteraciones ......................................................................................................................................................................................................................................................................................................152 Direccionamiento por medio de pilas...............................................................................................................................................................161 Operaciones unarias ...............................................114 EL DISEÑO DEL NIVEL DE MICROPROGRAMACIÓN .................................................................................................145 Criterios de diseño de formatos de instrucción..151 Direccionamiento indirecto.......................155 Evaluación de fórmulas en la notación polaca inversa...Pilas ....................................................115 Nanoprogramación ...............................................................149 Direccionamiento inmediato............................................................................................................................................................................................................................157 Algoritmo........................168 Flujo De Control .............................................................................................................144 EJEMPLOS DEL NIVEL DE MAQUINA CONVENCIONAL..................................................................................160 Direccionamiento en la PDP-11............................................................................................................................................................................160 Tipos de Instrucciones ...........................................................................................................................................157 Algoritmo.............................135 INDICE........147 Ejemplos de formatos de instrucciones.........................................................................................................................................................................................................................................161 Operaciones binarias ......................................136 INTRODUCCIÓN..........144 FORMATOS DE INSTRUCCIÓN...................................................................................................................................................................................................................150 Direccionamiento directo.......................................................................................................................................................................160 Instrucciones de movimiento de datos ........................103 El juego de macroinstrucciones .......................146 Códigos de operación con extensión.........................................162 Comparaciones y Saltos Condicionales................................129 CONCLUSIÓN............164 Instrucciones de llamada a procedimiento ...........................................................................................................................................................................149 Direccionamiento.............150 Direccionamiento de registros............................................115 Microprogramación horizontal frente a microprogramación vertical....................................123 Memoria caché ..................................................................................................................................................................113 Perspectivas ................................................................................................................................................167 Entrada / salida ....................................134 ........................................................................................................................................................................................................................143 EL NIVEL DE MÁQUINA CONVENCIONAL......................................................................................................................

...........204 LA UNIDAD DE CONTROL....236 Memorias asociativas ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................182 Interrupciones ..................................Corrutinas ...............215 INDICE....................................................................................197 ESTRUCTURA GENERAL...............................................................235 Memorias de acceso serie ...............................227 PARáMETROS y CARACTERíSTICAS MáS IMPORTANTES DE UNA MEMORIA 228 Capacidad.......................................................................................................................................................................................................................................................................................................................................................................................................201 ORGANIZACIÓN DE LA CPU ...........................................226 CÓDIGOS CORRECTORES DE ERRORES ............................189 INTRODUCCIÓN...................................187 BOLILLA III: ARQUITECTURA DEL PROCESADOR.............................................................................208 FASE DE PREPARACIÓN DE LA SIGUIENTE INSTRUCCIÓN ...................................................................................................................................................................................................................................................................................................................................228 Formas de acceder a las posiciones de memoria .............................................................................................227 CLASIFICACIÓN Y ORGANIZACIÓN DE LAS MEMORIAS ......................................................202 LA UNIDAD ARITMÉTICA Y LÓGICA .................197 Microprocesadores..................................................................................................................................................................................................211 INTERRUPCIONES ........................................................................229 Estructura de una RAM semiconductora ...................................................................229 Memorias de acceso aleatorio (RAM = Ramdom Acess Memory) ..............................................214 BOLILLA IV: MEMORIA......................................................................................................239 Modo de direccionamiento directo .....................................................................................223 MEMoRia .........................................................................................................................................224 DIRECCIONES DE MEMORIA ..............................................239 139 ...................................................184 CONCLUSIÓN..................................................................................207 Caso de búsqueda del operando...................................................................................................................233 Memorias pasivas....................207 FASE DE BÚSQUEDA O ALMACENAMIENTO DEL OPERANDO ........................211 CONCLUSIÓN.........................................209 INSTRUCCIÓN DE RUPTURA DE SECUENCIA ............................... seguido de procesamiento: ................206 FASE DE BÚSQUEDA DE LA INSTRUCCIÓN ..............................................................................183 ACCIONES DE SOFTWARE ......................................197 DESCRIPCIÓN DE LOS COMPONENTES DE UN PROCESADOR ...............................210 LAS UNIDADES PERIFÉRICAS ......183 ACCIONES DE HARDWARE ...............231 Pastillas de memoria en paralelo ............209 EL CANAL................................................................207 Caso de almacenamiento del operando: ...................................................................................................................................................................................................................225 ORDENAMIENTO DE BYTES .........188 INDICE...................................238 MODOS DE DIRECCIONAMIENTO ............................................................................................................................................................................................................................216 INTRODUCCIÓN....................................................................179 Desvios ..............................................................................................200 EJECUCIÓN DE LAS INSTRUCCIONES ..............................................196 ARQUITECTURA DEL PROCESADOR.............................

..............................283 INDICE....................................................293 Cuidados y advertencias....271 MONTAJE (LINKING) y CARGA ................................................................242 Modo de direccionamiento por registro indirecto .....................................................246 INDICE.........................................................................................................................................................................................................271 Implementación de macros en un ensamblador ...292 INTRODUCCIóN .................................................................272 Tareas realizadas por el programa ensamblador ..........................................................................................................................................................................................................259 EL PROCESO DE ENSAMBLAJE ..........................................................247 INTRODUCCIÓN................ llamada y expansión de una macro ............................................................................................................282 BOLILLA VI (Parte 1): PERIFÉRICOS.................269 Definición...........279 CONCLUSIÓN.............................................................257 Comparación entre el................................ ...............................................................................296 Ratones Inalámbricos....296 Ratones Estacionarios..............................................269 Macros con parámetros .........................................277 Enlace dinámico ..............................................................................254 EL NIVEL DEL LENGUAJE ENSAMBLADOR......................... lenguaje ensamblador y los lenguajes de alto nivel ..................................................................................................................................................................................262 La segunda pasada .244 CONCLUSIÓN............................................................................................................................................................................................................................................................294 MOUSE (RATON) .........................292 RESEÑA HISTÓRICA.......................................................................................................................................................................................................................................................240 Modo de direccionamiento relativo ...................................................................................................................................................................................................................................................................243 Otros modos de direccionamiento .......................................................................................................................................................................276 Tiempo de ligadura y reubicación dinámica ...................................................................................293 TECLADO: .............................................................................................................................................................................................................................291 PERIFÉRICOS......................................................256 ¿Qué es un lenguaje ensamblador? .............................................................................................................296 PANTALLAS TÁCTILES: ......................246 BOLILLA V: EL NIVEL DEL LENGUAJE ENSAMBLADOR.....................................................................................................................................................................................................................261 La primera pasada ...............................................................................................................................................................................................................................................................................................................................................................................................................................................256 Formato de una sentencia en lenguaje ensamblador ....................Modo de direccionamiento indirecto ........................................................266 La tabla de símbolos ...........................................................................................................................................................................255 INTRODUCCIÓN AL LENGUAJE ENSAMBLADOR .................261 Ensambladores de dos pasadas ........................................295 Tipos de ratones..........................................................................................274 Estructura de un módulo objeto .......................................................................240 Modo de direccionamiento indexado ..........258 Afinación de programas ............245 .292 PERlFERICOS DE ENTRADA: ............296 140 ..............................................................267 MACrOS .......284 INTRODUCCIÓN...

.......297 Desventajas: ...................................................................297 Ventajas: .............................298 LAPIZ OPTICO: .....................................................296 Profundidad de color......298 PERIFERICOS DE ALMACENAMIENTO: ..........................................................................................305 Impresoras de agujas: ..................................305 Impresoras con cinta entintada: .............................................................................................................................................................BOLAS GIRATORIAS: .........................................................297 Ventaja: ................................................................306 PERIFERICOS DE COMUNICACION....................297 Escáner de Sobremesa: ..............................................................303 La compresión MPEG-2: ...................................................303 El futuro del DVD: ...............................................305 Impresora de Bola: ........................................................................299 Discos........................................298 LECTORES DE TARJETAS MAGNETICAS......................................................................................................................................................306 Impresoras de inyección de tinta: ...........................................................................................................297 Desventajas: ............302 Prestaciones del DVD: ......................................................................................306 Impresoras Láser de color: ........................................................................................................................................................307 Como usar la Tecnología 56K ......304 Impresoras..............................................................................................................................................................................................................310 141 ...................297 Escáner de mano: ...................................................................................................................................................................................................................................................................................................................301 Cintas magneticas: ..........................................................309 BOLILLA VI (PARTE 2): TÉCNICAS Y DISPOSITIVOS DE ENTRADA SALIDA....................................296 Tipos de escáner:...........................................................................................306 Impresoras sin cinta entintadas: ..............................................................300 Discos opticos: ..........................................................................................................................................................................300 1..............................................299 Discos flexibles...............................................300 2.................................................... ............................................................................................................307 MODEM............................................................................................................307 Aspectos técnicos.......................................................................................................................................................................................304 PANTALLAS DE SISTEMAINFORMATICO (Monitor): ......297 LECTORES DE CODIGO DE BARRA........................................................................................................................................... Disco flexible de 5 1/4 pulgadas .................................................................307 CONCLUSIóN.........................297 Escáner de Rodillo:..................................................................................297 TABLETA DIGITALIZADORA...............................................................................................................................303 PERIFERICOS DE SALIDA: ..............................................302 DVD:..............................................................................................................................306 Impresoras láser: ......................................................................................................................................................................................................................................................300 Disco duro................................................................................................................................ .......................................................................................................................308 CONCLUSIÓN...............................................................................................................................................297 Calibración........299 Fiabilidad del soporte................................................................................296 ESCANER ................................303 El disco por dentro: .................................................................................................................................... Disco flexible de 3 1/2pulgadas ................................................................................................................................306 Impresoras térmicas: ......................... ..........300 Facilidad de manejo y almacenamiento.................................................................

...323 Plotter......344 142 .........................................................................................339 GLOSARIO................................................332 Procesos de comunicación para la transmisión de datos a distancia.............................................................................................................................................................................................................335 Polling (interrogatorio de tráfico) ................311 INTRODUCCIÓN............................340 CONCLUSIÓN.........................................................................338 Transferencia DMA ..................................................................319 Dispositivos de fichas y de banda perforada.........................................318 TECNICAS Y DISPOSITIVOS DE ENTRADA / SALIDA (Input / Ouput)...............................................................................................................................................................................................................................................................................................................................................................................................................................................................334 Técnicas de entrada/salida (input/output).................323 Impresoras.......................................336 Interrupciones (interrupts) ...............................................INDICE.................................................................................................................................................................................331 Terminales...............................................................334 Otros periféricos.....330 La pantalla....................................................................................................................................................................................................................................................................................................................................................343 BIBLIOGRAFÍA .......342 CONCLUSIÓN FINAL...........................................................................................................................................................319 Dispositivos de soporte magnético........................

INTRODUCCIÓN

143

APUNTES DE CATEDRA
CARRERA:
Cátedra:
Profesor:
AÑO:

LICENCIATURA EN ANALISIS DE SISTEMAS –
INGENIERIA EN SISTEMAS
Procesamiento De Datos I
Lic. Marcelo Martinez
2003

EL NIVEL DE MÁQUINA CONVENCIONAL
En este capítulo se introduce el nivel de máquina convencional (nivel 2) y se revisan
muchos aspectos de su arquitectura. Históricamente, el nivel 2 se desarrolló antes que los
demás, y por ello aún se le suele denominar (incorrecta- mente) "el" lenguaje de máquina.
Esta situación se ha establecido así porque en muchas máquinas el microprograma está en
memoria de lectura solamente, lo que significa que los usuarios (a diferencia del fabricante
de la máquina) no pueden escribir programas para el nivel 1. Incluso en máquinas que
pueden ser microprogramazas por el usuario, la enorme complejidad de la arquitectura del
nivel 1 es suficiente para descorazonar a los programadores más atrevidos. Debido a que no
hay máquinas con protecciones de hardware al nivel 1, tampoco, es posible permitir a una
persona que depure microprogramas nuevos mientras otra esté usando la máquina. Esta
característica inhibe aún más la práctica de la microprogramación por los usuarios.

EJEMPLOS DEL NIVEL DE MAQUINA CONVENCIONAL
Más que intentar la definición rigurosa de lo que es el nivel de la máquina
convencional (10 que de cualquier manera es casi imposible), se presentará este nivel
viendo los ejemplos usuales, primero Intel y después Motorola. El propósito de estudiar las
familias de CPU existentes es mostrar como las ideas vertidas aquí pueden aplicarse en el
"mundo real". Se compararán y verán los contrastes de estas máquinas en diversas formas,
para mostrar cómo diferentes diseñadores toman distintas elecciones.
No debe llegarse a la conclusión de que el resto de este libro se refiere a la:
programación de las CPU de Intel y Motorola. Lejos de eso, estas máquinas se usarán para
ilustrar la idea del diseño de una computadora como una serie de niveles. Se examinarán
varias de las características de sus respectivas arquitecturas y se proporcionará, donde sea
necesario, información acerca de su programación. Sin embargo, no se pretende presentar
una descripción completa. Para un conocimiento cabal de todos los detalles de estas
máquinas, sírvase consultar las publicaciones del fabricante.
Por último, este capítulo se refiere en principio a la arquitectura e instrucciones
utilizadas por el usuario común (v.g., programas de aplicación). Aquellas que son de interés
para los diseñadores de sistemas operativos, se omitirán o diferirán hasta la exposición del
tema en el capítulo 6.

144

FORMATOS DE INSTRUCCIÓN
Un programa consta de una secuencia de instrucciones, cada una de las cuales
especifica una acción particular. Una parte de la instrucción, llamada código de operación,
señala la acción que va a ejecutarse. Muchas instrucciones contienen los datos que usan o
especifican dónde están. Por ejemplo, una instrucción que compare dos caracteres para ver
si son iguales debe especificar qué caracteres se han de comparar. Todo lo relativo a la
especificación de dónde está el dato (dirección) se llama direccionamiento y se verá en la
sección 5-3.
La figura 5-17 muestra varios formatos típicos de instrucciones de nivel 2. En
algunas máquinas 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 instrucción y de palabra se muestran
en la figura 5-18.
Código de operación
(a)
Direccionamiento
(b)
Código de operación Direccionamiento 1 Direccionamiento 2
(c)
Fig. 5-17. Tres formatos típicos de instrucción: a) Instrucción sin
dirección. b) Instrucción con una dirección. c) Instrucción con dos
direcciones.
Código de operación

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

Palabra 1
Direccionamiento
0 Instrucción
1 Instrucción
2 Instrucción
3 Instrucción

Instrucción
Instrucción
Instrucción
Instrucción
(b)

Instrucción
Instrucción
Instrucción
Instrucción

Instrucción
Instrucción
Instrucción
Instrucción

Direccionamiento
0 Instrucción
Instrucción
Instrucción
Instrucción
1
Instrucción
Instrucción
2 Instrucción
Instrucción
Instrucción
3
Instrucción
Instrucción
Instrucción
4 Instrucción
Instrucción
Instrucción
5
Instrucción
Instrucción
6
Instrucción
7
Instrucción
Instrucción
(d)
relaciones posibles entre la longitud de la instrucción y la de la

145

Criterios de diseño de formatos de instrucción
Cuando un grupo de diseñadores de una computadora ha de elegir un formato (o
formatos) de instrucción, debe considerar multitud de factores. El primero, y el más
importante, es que las instrucciones cortas son mejores que las largas. Un programa
compuesto den instrucciones de 16 bits ocupa solamente la mitad del espacio de memoria
que uno con n instrucciones de 32 bits. Después de todo, la memoria no es gratuita y por
eso los diseñadores no desean malgastarla inútilmente.
Una segunda razón es que la memoria tiene una velocidad de transferencia particular,
determinada por su tecnología y diseño. La velocidad de transferencia o caudal de una
memoria es el número de bits por segundo que pueden ser leídos de ella. Una memoria
rápida puede dar el procesador (o a un dispositivo de E/S) más bits por segundo que una
memoria lenta.
Si el caudal de una memoria particular es de t bits por segundo y la longitud media de
instrucción es de r bits, entonces la memoria puede entregar al máximo t/r instrucciones
por segundo. Esto significa que la velocidad de ejecución de las instrucciones (es decir, la
velocidad del procesador) depende de la longitud de ellas. Las más cortas equivalen a un
procesador más rápido. Si el tiempo requerido para ejecutar una instrucción es muy largo
en comparación con el requerido para extraería de la memoria, entonces el tiempo de
extracción de la instrucción no será tan importante. Sin embargo, con CPU rápidas las
memorias suelen ser un cuello de botella. En consecuencia, un importante criterio de diseño
consiste en aumentar el número de instrucciones extraídas por segundo.
Un segundo criterio de diseño de los formatos de instrucción es dejar suficiente sitio
en la instrucción para expresar todas las operaciones deseadas. Es imposible concebir una
máquina con 2n operaciones y una instrucción con menos de n bits. Simplemente no habrá
suficiente espacio en el código de operación para indicar qué instrucción se requiere.
Un tercer criterio consiste en que es muy conveniente que la longitud de la palabra de
máquina sea un múltiplo entero de su longitud de carácter. Si el código de los caracteres
tiene k bits, la longitud de palabra deberá ser k, 2k, 4k, 5k y así sucesivamente; de otra
manera, se derrochará espacio cuando se almacenen caracteres. Naturalmente, es posible
almacenar 3.5 caracteres por palabra, pero ello causará una grave ineficiencia en el acceso
a los caracteres. Las restricciones Impuestas en la longitud de palabra por el código de los
caracteres afectan a la longitud de instrucción, ya que o bien una instrucción debe ocupar
un número entero de palabras o bien un número entero de instrucciones debe llenar una
palabra. Seria probablemente una catástrofe un diseño con un carácter de 9 bits, una
instrucción de 12 bits y una palabra de 31 bits.
Un cuarto criterio concierne al número de bits del campo de dirección. Consideremos
el diseño de una máquina con un carácter de 8 bits (posiblemente 7 bits más el de paridad)
y una memoria principal que deba contener 215 caracteres. Los diseñadores podrán optar
por asignar direcciones consecutivas a unidades de 8, 16, 24 o 32 bits, entre otras
posibilidades.
Imaginemos qué ocurriría si el equipo de diseño degenerase en dos facciones rivales,
una partidaria de hacer del byte la unidad básica de memoria y la otra partidaria de que lo
sea la palabra de 32 bits. El primer grupo propondrá una memoria de 216 bytes numerados
0, 1, 2, 3,..., 65535; el otro, una de 214 palabras numeradas 0,1,2,3,..., 16383.
El primer grupo aducirá que, para comparar dos caracteres en la organización de
palabras de 32 bits, el programa no solamente tendría que extraer las palabras que
contienen los caracteres, sino extraer también cada carácter de su palabra para
compararlos. Hacer esto cuesta instrucciones adicionales y por lo tanto derrocha espacio.
Además, la organización de 8 bits proporciona una dirección para cada carácter, haciendo
así más fácil la comparación.
Los partidarios de la palabra de 32 bits replicarán que su propuesta requiere
solamente 214 direcciones diferentes, dando una longitud de dirección de sólo 14 bits,
mientras la propuesta del byte requiere 16 bits para direccionar la misma memoria. Una
dirección más corta significa una instrucción más corta, lo que no solamente ocupa menos
espacio sino que también requiere menos tiempo de extracción. De igual modo, podrían
retener la dirección de 15 bits para hacer referencia a una memoria cuatro veces mayor que

146

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

Códigos de operación con extensión
En la sección anterior vimos cómo se puede llegar a un compromiso entre direcciones
cortas y una buena resolución de memoria. En esta sección examinaremos los compromisos
entre los códigos de operación y las direcciones. Consideremos una instrucción de n + k bits
con un código de operación de k bits y una única dirección den bits. Esta instrucción admite
2k operaciones diferentes y 2n celdas de memoria direccionables. Alternativamente, los
mismos n + k bits podrían repartirse entre un código de operación de k -l bits y una
dirección de k + 1 bits, lo que supone la mitad de instrucciones pero el doble de memoria
direccionable, o igual cantidad de memoria pero el doble de resolución. Un código dc
operación de k + 1 bits y una dirección de n-l bits da más operaciones. El precio es, sin
embargo, o un menor número de células direccionables o peor resolución con igual cantidad
de memoria. Es posible encontrar soluciones intermedias entre los bits del código de
operación y los de la dirección, además de la muy sencilla que se acaba de describir. El
esquema descrito en el párrafo siguiente se llama código de operación con extensión.
El concepto de un código de operación con extensión puede verse más claramente
mediante un ejemplo. Consideremos una máquina en la que las instrucciones tienen 16 bits
de longitud y las direcciones 4 bits, como muestra la figura 5-19. Esta situación podría ser
razonable en una máquina que tuviese 16 registros (por tantas direcciones de registro de 4
bits) en los que se efectuaran todas las operaciones aritméticas. Un diseño posible seria un
código de operación de 4 bits y tres direcciones en cada instrucción, que dan 16
instrucciones de tres direcciones.
15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

Código de operación
Dirección 1
Dirección 2
Dirección 3
Fig. 5-19. Instrucción con código de operación de 4 bits y tres campos de dirección de 4 bits cada uno
Sin embargo, si los diseñadores necesitan 15 instrucciones de tres direcciones, 14
dedos, 31 de una y 16 sin dirección, pueden usar los códigos de operación 0 a 14 como
instrucciones de tres direcciones, pero interpretar el código de operación 15 de manera
diferente (véase figura 5-20).

147

El código de operación 15 indica que el código de operación 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 números 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 serán tratados
especialmente, como si sus códigos de operación estuviesen en los bits 4 a 15. El resultado
permite 32 nuevos códigos de operación. Puesto que solamente se necesitan 31.
111111111111 se interpretan como si el código de operación real estuviera en los bits 0 a
15, con lo que se obtienen 16 instrucciones sin dirección.
Nótese que, según se avanza en esta explicación, el código de operación se va
haciendo más y más largo; esto es, las instrucciones de tres direcciones tienen un código de
operación de 4 bits, las dedos direcciones tienen uno de 8 bits, las de una dirección lo
tienen de 12 bits y la de ninguna dirección lo tienen de 16 direcciones.
En la práctica, los códigos de operación 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

Recuérdese que una colección numerada de registros forma. en la memoria. Sin embargo existen tambien otras 149 . En muchas máquinas que hacen operaciones aritméticas con tina sola dirección. A un juego de instrucciones en el que el método para especificar las direcciones de los operandos es independiente del código de operación. Los campos de modo indican si el operando está en un registro. la PDP-11 utiliza un esquema de código de operación extendido. La PDP-11 La mayoría de las instrucciones dedos operandos de la PDP-11 se codifican como se muestra en la figura 5-21. Las instrucciones de la PDP-11 que direccionan memoria. incluyendo a las de un operando. Los campos de direcciones se subdividen en dos campos de 3 bits. un registro especial llamado acumulador proporciona uno de los operando. se le denomina ortogonal. se examinarán los formatos de instrucciones de la PDP-11 de Intel y de Motorola en el nivel de máquina convencional. Ejemplos de formatos de instrucciones En esta sección. En estas máquinas la dirección es generalmente la de una palabra de memoria m donde está situado el operando. Una instrucción que sume el registro 1 con el registro 2 debería clasificarse como de dos direcciones porque la instrucción debe especificar qué registros han de sumarse. Las dos fuentes se suman y se guardan en el destino. Cada una tiene un código de operación de 4 bits y dos campos de dirección de 6 bits. Los mismos ocho modos que están disponibles para los operandos de origen. Se incluye aquí a la PDP-11. De hecho. pues su limpieza y regularidad da luz a los futuros arquitectos de conjuntos de instrucciones. Para unas cuantas instrucciones. 2 y 3 direcciones. usando códigos xlii (binario) como escape hacia códigos de operación más largos. de la misma manera que una instrucción que sume dos palabras de memoria debe especificar qué palabras se suman. fuente o destino.de 4 bits. de hecho. Son comunes instrucciones que especifican 1. se requiere con frecuencia una diversidad de longitudes y formatos. Una posibilidad consiste en que contengan la dirección de memoria del operando. etc. La instrucción de suma que especifica la dirección 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. por ejemplo. Hasta ahora hemos prestado poca atención a la forma en que son interpretados los bits de un campo de dirección para encontrar el operando. El bit más a la izquierda del código de operación indica si la instrucción opera en bytes o en palabras. tienen una o dos palabras adicionales de 16 bits en seguida de la instrucción para especificar la dirección. si es una constante. la mayoría de las instrucciones de un operando usan códigos de operación de 10 bits y los mismos 6 bits para los campos de modo y registro que en las instrucciones de dos operandos. También aquí se presenta una regularidad considerable. La fuente se añade al destino: destino: = destino + fuente Las instrucciones de tres direcciones especifican dos fuentes y un destino. lo están también para los de destino y cualquier código de operación se puede usar con cualquier operando. una memoria de alta velocidad y define un espacio de direcciones. Direccionamiento Las instrucciones pueden clasificarse según el número de direcciones que usan. Quienes programan compiladores tienen preferencia por los juegos de instrucciones ortogonales. uno para el modo y otro para el registro (la PDP-11 tiene E registros).

pero en el 68020 y el 68030 se permiten las tres longitudes en cualquier parte. En algunas instrucciones del 68000 (ver figura 5-24) solo se aceptan constantes de 8 a 16 bits. En el modo protegido de 32 bits. los operandos sólo podrán tener tres bits. 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 Condición 1 1 Condición 1 Fig. El 80386 usa direcciones de 16 bits en los modos real y virtual y segmentos de 16 bits en el modo protegido. Direccionamiento inmediato El modo más simple de que una instrucción especifique un operando es que la parte de dirección de la instrucción contenga ya el operando mismo. en la figura 5-5 la instrucción ADD se ve correcta y ortogonal como en la PDP-1 1. de forma que cualquier operando fuente puede ser una constante. Todas las CPU de Intel tienen direccionamiento directo. tienen una gran cantidad de instrucciones distintas en las que uno de los operandos es inmediato. Las CPU de Intel no poseen un modo de direccionamiento para operandos inmediato. en lugar de una dirección u otra información que describa dónde esta. Tiene la desventaja de restringir el operando a un número que pueda caber en el campo de dirección. Los 680x0 tienen un modo de direccionamiento inmediato. Cuatro instrucciones 6 5 4 3 Modo Modo 1 Modo 1 0 0 1 de la 68000. En realidad. lo que [imita bastante su utilidad. Este operando se denomina operando inmediato. un campo de registro). instrucciones especiales como ADDI. ADDQ y CMPI permiten que las instrucciones inmediatas se codifiquen en forma más eficiente. Los 680x0 tienen dos formas de direccionamiento directo. 150 . o usar un modo de direccionamiento especial para cada tipo de operando. las direcciones directas tienen 32 bits de longitud. Además. Este proceso se llama direccionamiento directo. 5-24. Se discutirán más adelante los detalles por ¡OS que la computadora sabe qué direcciones son inmediatas y cuáles son directas. Nótese que en todos los casos las direcciones directas son demasiado cortas para cubrir todo el espacio de direcciones. Se puede accesar a las direcciones de los primeros 64K de memoria con la forma corta. En su lugar. 2 1 Reg Reg Reg Reg 0 Direccionamiento directo Otro método sencillo de especificar un operando es dar la dirección de la palabra de memoria donde está contenido. Estas dos formas se indican por los valores del campo MODO de tres bits. pero las direcciones que superan los 64K necesitan la forma larga. cinco de ellos para operandos inmediatos. se utilizan nueve códigos de operación para ADD.16 o 32 bits) y de como se especifique el destino.posibilidades. al mismo tiempo que la instrucción. porque se extrae en forma automática de la memoria. Exploraremos algunas de ellas en las secciones siguientes. una con una dirección de 16 bits y otra con una de 32 bits. Existen en general dos enfoques: usar códigos de operación diferentes. El direccionamiento inmediato tiene la virtud de no requerir de referencias adicionales a memoria para extraer el operando. dependiendo de la longitud de éstos (8. Tanto Cl 8088 como el 80286 utilizan direccionamiento directo de 16 bits. Por ejemplo. de aquí que esté inmediatamente disponible para su utilización. y por tanto se aplican a todas las instrucciones de la figura 5-23 que tienen uno o más campos de OPERANDO. En una instrucción con una dirección de tres bits (por ejemplo.

es posible poner un apuntador en SI y especificar que el operando está ubicado en memoria en la dirección a la que apunta SI. sino la dirección del operando. El contenido de la posición 1000 no es el operando sino que "apunta" al operando. Seria necesario un bit en el código de operación para especificar qué espacio de direcciones se va a utilizar. y b) como hay pocos. 151 . una dirección tiene dos partes: a) un bit que indica sise desea un registro o una palabra de memoria y b) un campo de dirección que indica el registro o palabra de memoria que se desea. En esta forma de direccionamiento el campo de dirección contiene el número del registro donde está almacenado el operando. W. Por ejemplo. En el indirecto la dirección específica la palabra de memoria o registro que contiene no el operando. 1 o suficientes ejemplares de cada recurso para que los programadores no perdieran el tiempo pensando qué hacer si se acaban (regla de ninguno. en dicha máquina. el contenido de la posición ¡000 se lleva a un registro interno de la CPU. Se puede considerar que. El bit indicaría entonces qué espacio de direcciones usar. como en la figura 5-25(a). tendríamos una instrucción con direccionamiento directo. SI y DI. No es posible ¡levar a cabo el direccionamiento indirecto en ninguno de éstos utilizando un apuntador en la memoria. van del Poel (1958). se extrae el contenido de la posición 1510 y se pone en R1. la mitad de los códigos de operación se referirían a operandos situados en memoria y la otra mitad a operandos situados en registros. Por desgracia> el tener 80 15 registros complica en gran medida la programación porque deben tomarse decisiones respecto a los operandos y a los resultados intermedios que van a conservarse en el limitado número de registros y respecto a los que van a guardarse en la memoria central. por eso se utiliza a menudo un formato de instrucción diferente para operandos en registro y para operandos en memoria. 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 también en registros. Todos los procesadores de Intel tienen direccionamiento indirecto a través de un registro.Direccionamiento de registros El direccionamiento de registros es conceptualmente igual que el direccionamiento directo. Puesto que hay menos registros que palabras de memoria. Primero. Direccionamiento indirecto En el direccionamiento directo la dirección especifica la palabra de memoria o registro que contiene el operando. L. En vez de eso. sólo se necesitan unos cuantos bits para direccionarlos. Se diseñan máquinas Con registros por dos razones: a) los registres son más rápidos que la memoria Central. en tanto que en el 80385 se pueden utilizar todos los registros. señaló con acierto que las computadoras deberían estar dotadas de 0. Este número de 15 bits (1510) no se pone en R1. uno o infinitos). En el 8088 y en el 80286 sólo se pueden direccionar en forma indirecta los registros BX. Una máquina con 16 registros y 65 536 palabras de memoria tiene realmente dos espacios de direcciones. Si así fuera. Por eso se dice que es un apuntador. se necesitan direcciones más pequeñas para éstos. Se verá más claro que estamos usando dos espacios de direcciones si dicho bit se traslada desde el campo de código de operación al de dirección. Si hubiera una instrucción de registros por cada instrucción que direccionan memoria.

A + 1. Esta es una de las principales diferencias entre el 68000 y las CPU más recientes. modificarla una vez más y repetir el ciclo hasta que las n palabras hayan sido copiadas. el direccionamiento indirecto se puede realizar a través de memoria. se podría ejecutar esta instrucción y modificarla para obtener MOVE A + 1. B + 2 . ahora se consideran una técnica de programación poco afortunada. B + n . A + n ... El problema de copiar podrá también resolverse mediante direccionamiento indirecto.. B + 1. Indexación Muchos algoritmos exigen la realización de operaciones sobre una secuencia de datos estructurados.1 Suponiendo que la máquina tenga una instrucción MOVE A.. consideremos un bloque de n palabras de máquina que ocupan las posiciones A. Entre otras razones porque son difíciles de depurar y obstaculizan la compartición de un programa entre varios usuarios de un sistema de tiempo compartido. Aunque durante un tiempo los programas que se modificaban a sí mismos eran muy populares. en diversas formas. Por ejemplo.B que traslade el contenido de la posición A a la B. 152 .. B + 1 ejecutarla otra vez. almacenados en posiciones de memoria consecutivas. En el 68020 yen el 68030....El 68000 permite el direccionamiento indirecto a través de los registros de direcciones mas no de otra forma.1 que deben ser trasladadas a las posiciones B. A + 2 .

El que se ha introducido más recientemente se dice que está en su cima. también tienen autoindexación. si se conocen la dirección de comienzo de la estructura y la posición del campo dentro de ella. En el ejemplo precedente era necesario incrementar explícitamente el registro índice después de cada uso del mismo. En la figura 5-26(b) se ha introducido un 6 en la pila y el apuntador indica 1002 como una nueva cima. porque emplearlas para hacer aritmética es algo diferente que usarlas para guardar variables locales (aunque. esta situación es posible: se lleva a cabo organizando la máquina a base de una estructura de datos llamada pila. Si inicializamos el registro de Índice a 0 y lo incrementamos en uno después de copiar cada palabra. Otra solución consiste en tener uno o más registros llamados registros de índice. Hay siempre un registro o una palabra de memoria asociada a la pila que contiene la dirección de su cima. Una pila consta de datos elementales (palabras. Lo mismo se hará con la dirección de B. tomando el apuntador el valor 1003. Las variables locales de un procedimiento se accesan en esta forma. En el ejemplo anterior. La instrucción MOVE usa dichos registros o palabras como apuntadores. La modificación automática de un registro índice se llama auto-indexación. Aunque parezca increíble. El apuntador de pila contiene 1001. Direccionamiento por medio de pilas Ya se ha dicho que conviene tener instrucciones de máquina lo más breves posible para ahorrar tiempo de CPU y memoria. por supuesto. que es la dirección del dato que está en la cima de la pila. etc. "apunta" hacia la cima. La necesidad de incrementar o decrementar un registro índice justo antes o después de usarlo es tan corriente.La dirección de A se cargará en un registro o en una palabra de memoria. Tanto las pastillas de Intel como las de Motorola tienen una diversidad de modos de direccionamiento que involucran indexación. En el caso de los 680x0. Naturalmente los apuntadores son parte de los dalos. sólo será necesario un registro para la iteración de copia. bits. la instrucción MOVER A. También suele usarse la indexación para acceder a un campo determinado de una estructura. B trasladaría el contenido de la posición de memoria A + k a la B + k. que algunas computadoras cuentan con instrucciones especiales. 153 . que funcionan como sigue. En la figura 5-26(d) se han desapilado el 75. El fondo de la pila está en la posición 1000 de la memoria y la cima en la posición 1001. Los campos de dirección tienen dos panes: la dirección del registro de índice y una constante. caracteres. En la figura 5-26(c) se ha apilado un 75. Aunque ya estudiamos las pilas en el capitulo 4. La figura 5-26 ilustra el funcionamiento de una pila. La reducción de las longitudes de las direcciones se puede llevar al extremo de tener instrucciones sin dirección. En la figura 5-26(a) hay ya dos datos en la pila. y por tanto no son compartidos por usuarios simultáneos. Además. incrementar un registro es más rápido que incrementar una posición de memoria. Se denomina apuntador de pila. se pueden combinar). ambos apuntadores se incrementarán en 1 unidad.) almacenados en orden consecutivo en la memoria. aquí las revisaremos brevemente. es decir. modos de direccionamiento o incluso registros índice especiales que automáticamente se incrementan o decrementar. Después de copiar cada palabra. El primer dato introducido en la pila se dice que está en el fondo de ella. si ambas direcciones se indexaran usando un registro de índice que contuviera el entero k. únicamente con código de operación. La dirección del operando es la suma de la constante y el contenido del registro de Índice. no del programa.

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

La notación que incluye el operador entre los operandos se llama infija. insertaremos el símbolo ⊥ después del último símbolo y antes del primero. es muy conveniente para evaluar fórmulas en computadoras con pilas. los operadores infijos tienen precedencias. con una bifurcación que desvía hacia Granada. como en x y +. Los vagones que contienen otros símbolos deben investigar el contenido del vagón más cercano situado sobre la via que lleva a Granada antes de entrar en la bifurcación. El que se da más adelante es una adaptación de una idea debida a E. cualquier fórmula puede ser expresada sin paréntesis. Para marcar los limites de una fórmula. Los vagones que contienen variables siempre van directamente a Madrid y nunca a Granada. * y / los paréntesis abierto y cerrado. que son arbitrarias e indeseables. La figura 5-28 muestra un trayecto de ferrocarril desde Valencia a Madrid. El primer ⊥ siempre va a Granada. como en x + y. W. Por ejemplo. Cada vez que un vagón llega a la bifurcación. La que pone el operador después de los operandos se llama notación posfija o. Lukasiewicz (1958) quien investigó sus propiedades. Los números indican las situaciones siguientes: 155 . porque la multiplicación ha sido definida arbitrariamente como precedente sobre la suma. notación polaca inversa por ser el lógico polaco J. en lugar de escribirlo después de ellos. debe parar y preguntar si debe ir a Madrid directamente o desviarse a Granada. Tercero. Primero. según el contenido del vagón más cercano en la vía de Granada y del de la bifurcación. La figura 5-29 muestra lo que pasa. más comúnmente. La notación polaca inversa elimina esta incomodidad. los operadores binarios (de dos operandos) +. El tren se mueve hacia el oeste (a la izquierda).Notación polaca inversa Desde hace mucho tiempo es tradicional en matemáticas escribir el operador entre los operandos. Supone que una fórmula está compuesta de los siguientes símbolos: variables. Dijkstra. sabemos que a x b + c significa (a x b) + c y no a x (b + c). Segundo. Existen diversos algoritmos con los que se convierten fórmulas escritas mediante notación infija en otras escritas en polaca inversa. Cada símbolo de la fórmula se representa por un vagón de ferrocarril. La notación polaca inversa tiene algunas ventajas sobre la notación infija para expresar fórmulas algebraicas. —.

considerando el encaminamiento de un vagón hacia Granada como una operación de apilar y la recuperación de un vagón de la vía de Granada para llevarlo a Madrid como una operación de desapilar. el orden de los operadores es diferente. Tabla de decisión utilizada por el algoritmo de conversión de infija en polaca invesa. Fin. El vagón que ha entrado más recientemente en la vía de Granada da la vuelta y va a Madrid.Vagón que ha llegado más recientemente a la vía de Granada ⊥ + X / ( ⊥ 4 2 2 2 2 5 Vagón en la bifurcación + x / ( 1 1 1 1 1 2 2 1 1 1 2 2 1 1 1 2 2 2 2 1 2 2 2 2 1 1 1 1 1 1 ) 5 2 2 2 2 3 Fig. Los símbolos que están en Madrid representan la fórmula en notación polaca inversa cuando se leen de izquierda a derecha. El proceso continúa hasta que se alcanza el punto 4. El vagón que está en la bifurcación se dirige hacia Granada. 2. Se ha producido un error. Ejemplo de fórmula infija y sus equivalentes en polaca inversa. Después de producirse cada acción. se hace una nueva comparación entre el vagón de la bifurcación. Los operadores en la notación polaca inversa aparecen. 156 . El vagón de la bifurcación y el que ha entrado más recientemente en la vía de Granada son "secuestrados" y desaparecen (es decir./ AB x C / AB + C x D + EF + G + / FIG. que puede se el mismo de la comparación previa o el siguiente. La fórmula original no estaba balanceada correctamente. y el vagón que está en este momento al último en la vía de Granada. de hecho. se eliminan). 1. Sin embargo. 5-30. Obsérvese que la vía de Granada se usa como una pila. 4.D) AxB/C ((A + B) x C + D) / (E + F + G) Polaca inversa ABC x + AB x C + AB x CD x + AB + CD . 5. en el orden en que serán ejecutados durante la evaluación de la expresión. Infija A+BxC AxB+C AxB+CxD (A + B) / (C . Nótese que el orden de las variables es el mismo en las dos notaciones. 5-29. 3. Fin. La figura 5-30 da ejemplos de fórmulas en notación infija y sus equivalentes en polaca inversa.

La fórmula consta de n símbolos. si bien en la 5-33 se utiliza una pila. el algoritmo se da por terminado y la solución está en la pila. no el de la izquierda. Realizar la operación con los operandos y escribe el resultado en el hueco. Borrar el operador y los operandos en la fórmula. La figura 5-31 describe la evaluación de una fórmula en polaca inversa. Examinar el símbolo k-ésimo. El algoritmo es como sigue. se vuelve al punto 1. 3. Examinar cada símbolo que en la fórmula está en notación polaca inversa.Evaluación de fórmulas en la notación polaca inversa El siguiente algoritmo evalúa una fórmula en notación polaca inversa. La notación polaca inversa es ideal para evaluar fórmulas en una computadora con una pila. Escribir en un trozo de papel el operador y los dos operandos situados inmediatamente a su izquierda. 157 . 4. Si no fuera así. 2. dejando un hueco. 2. éste es la respuesta y el algoritmo ha terminado. Si k = n. Si es un operador. Obsérvese que el número que está en la cima de la pila es el operando de la derecha. Si es una variante. realizar la operación y apilar el resultado de nuevo. 5. en caso contrario. Poner k a 1. Si la nueva fórmula consta de un solo valor. Algoritmo 1. algo con un valor) o un operador. Nótese que el orden de los operadores es el orden en que se usan realmente. Algoritmo 1. comenzando por el extremo de la izquierda hasta llegar a un operador. La figura 5-33 muestra la evaluación de la misma fórmula que en la figura 5-32. 3. siendo cada uno de ellos o una variable (es decir. desapilar los dos datos que están en su cima. añade 1 a k y realiza el paso 2. se apila.

Las fórmulas son fáciles de evaluar. ya que el orden de los operandos es significativo (a diferencia de la suma o la multiplicación). En la modalidad de decremento predeterminado. 158 . primero se decrementa el (registro) apuntador de pila y luego el registro se utiliza como apuntador. No hay necesidad de utilizar algoritmos complicados para optimizar la utilización de los registros. Las instrucciones son cortas ya que muchas de ellas no tienen dirección. 3. Una computadora organizada en torno a una pila ofrece diversas ventajas en comparación con las máquinas de registros múltiples. primero se realiza el direccionamiento y después se incrementa el registro. En la modalidad de incremento posterior. pero si instrucciones especiales (PUSH y POP) para colocar Hems en la pila (apilar) y para retirarlas de ella (desapilar). En contraste todas las pastillas 680x0 tienen direccionamiento de pila por medio de auto-indexación. como los de los ejemplos: 1. 2. Ninguna de las CPU de Intel tiene direccionamiento de pila.Este punto es importante para la resta y la división.

antes de ejecutar la instrucción. 5 Primero se decrementa R en 1 o 2. por convención el apuntador de pila apunta a la primera celda vacía de la pila. Cuál de los sistemas a utilizar depende de las preferencias y de los antecedentes de uso. (b) Fig. En los modos 6 y 7 el contador se programa (R7) se incrementa en 2 inmediatamente después de extraer la siguiente palabra. R se incrementa en 1 (instrucciones de byte) o en 2 (instrucciones de parabra) 3 Se extrae de R la dirección de una palabra que contiene el apuntado al Auto-incrementado indirecto operando. 159 . 4 Primero se decrementa R en 1 o 2. en lugar de hacerlo a la última ocupada. Después el nuevo valor de R se Auto-incrementado inderecto utiliza como la dirección de memoria que contiene un apuntador al operando. a) Formato de una instrucción de la PDP-11 de dos direcciones. Después el nuevo valor de R se Auto-incrementado utiliza como un apuntador al operando. Después se incrementa R en 1 o 2. se puede usar entonces el incremento posterior para apilar y el decremento predeterminado para desapilar. Por el contrario. Si la pila crece de las direcciones altas a las bajas y el apuntador de pila apunta siempre a la parte superior (es decir.'si la pila crece de las direcciones bajas a las altas y. b) Descripción de los modos de direccionamiento de la PDP-11. 5-33. En los modos 6 y 7 el contador de programa (R7) se incrementa en 2 inmediatamente después de extraer la siguiente palabra 7 Direccionamiento indexado + La posición de memoria que contiene un apuntador al operando se indirecto obtiene sumando el contenido de R y la siguiente palabra. R es el registro especificado con el modo. 6 Indexado El operando está en al dirección igual a la suma del contenido de R (registro de índice) y el desplazamiento de 17 bits en complemento a 2 contenido en la siguiente palabra. Después de este paso. pero antes de ejecutar la instrucción. a la dirección más baja de memoria que contiene un elemento de la pila). se puede usar la modalidad de decremento predeterminado para apilar y la de incremento posterior para desapilar.Dirección Palabra de 16 bit Fuente Destino CÓDIGO DE MODO DE REGISTRO DE MODO DEL OPERACIÓN LA FUENTE LA FUENTE DESTINO 4 3 3 3 N+2 (Primer palabra siguiente) 16 N+4 (Segunda palabra siguiente) 16 (a) N REGISTRO DEL DESTINO 3 Modo Nombre 0 Direccionamiento de registro 1 Indirecto sobre registro 2 Auto-incrementado Cómo se localiza el operando El operando está en R R contiene un apuntado al operando Se extrae el contenido de R y se utiliza como apuntador al operando.

Todas las instrucciones de la PDP-11 tienen 16 bits realmente. En ambos casos la palabra señalada por R7 es la que sigue a la instrucción. Direccionamiento en la PDP-11 Las direcciones en la PDP-11 se especifican por medio de un campo de 6 bits. Las instrucciones de una dirección tienen uno de estos campos. el indirecto. Los campos de 6 bits constan de 3 bits para el modo de direccionamiento y 3 bits para el número de registro. este último se incrementa en 2 inmediatamente después de extraer la palabra de una instrucción (antes de ejecutar la instrucción). en algunos casos. Las instrucciones de propósito especial tienen aplicaciones mucho más restringidas. incrementándose en 2. se observará la siguiente secuencia de pasos. 160 . Luego el registro 7 se usa como apuntador (puntero) del dato (modo 2) o de la dirección del dato (modo 3). En la figura 5-33(b) se muestra el significado de los modos. pero. Hay pocas aplicaciones en las que es realmente útil esta instrucción. etc. Por ejemplo. En el modo 2 este dato es el operando. la primera es para la fuente. tiene lugar el autoincremento del registro 7. queda aún la cuestión de cómo el hardware o el intérprete de nivel uno reconocen que el direccionamiento pertenece a alguno de los modos mencionados. el registro 6 corresponde al apuntador de pila y el registro 7 al contador de programa. con un byte sin utilizar entre los bytes de datos. TIPOS DE INSTRUCCIONES Las instrucciones del nivel de máquina convencional se pueden dividir aproximadamente en dos grupos: instrucciones de propósito general e instrucciones de propósito especial. si se especifica uno de los modos 2 o 3 con el registro 7 (el contador de programa). En las siguientes secciones examinaremos los grupos más importantes de instrucciones de propósito general. etc. mientras que las de dos direcciones tienen dos. se extrae la instrucción y se incrementa el registro 7 en dos (una palabra consta de 2 bytes). esto es. el inmediato. Se debe tener presente esta propiedad al examinar algunos de los modos de direccionamiento. utilizan una o dos palabras adicionales situadas a continuación y que pueden considerarse como parte de ellas. y ningún compilador la generará jamás (se incluyó para facilitar la comunicación con los periféricos más antiguos de 8 bits).Ejemplos de direccionamiento En las secciones anteriores se estudiaron varios modos de direccionamiento. En el modo 3 es la dirección del operando. ADD DIRECTO. Una solución consiste en tener código de operación por separado para cada método. lo que nos da un direccionamiento inmediato. El direccionamiento con auto-incremento aplicado al contador de programa es un truco que permite utilizar como dato la palabra que está a continuación de la instrucción. Los modos de direccionamiento 6 y 7 requieren una constante de 16 bits para indexar. Además. Otra forma es hacer que el modo forme parte de la dirección. Las primeras tienen una aplicación muy amplia. La instrucción MOVEP de la 68000 almacena en memoria el contenido de un registro D en bytes alternos. Una vez que se ha extraído la palabra. Cada instrucción pudiera contener unos cuantos bits por dirección para especificar el modo de direccionamiento deseado. diferentes códigos para ADD INMEDIATO. Sin embargo. la posibilidad de mover datos a través de la máquina seguramente se necesita en casi todas las aplicaciones. En la PDP-11. Si tanto la fuente como el destino requieren una palabra adicional. el directo. obteniéndose un direccionamiento directo. el indexado. como se puede apreciar en la figura 5-33(a). ADD INDIRECTO. En primer lugar. con el mismo código en cada campo.

O y O EXCLUSIVO. un registro o la pila. Cuando decimos que el contenido de la posición de memoria 2000 se ha movido a algún registro. por ejemplo. Otro grupo de operaciones binarias incluye las instrucciones booleanas. pocas máquinas. Tres instrucciones presentes en muchas máquinas son Y. Operaciones binarias Las operaciones binarias son las que combinan dos operándoos para obtener un resultado. Las instrucciones de movimiento de datos requieren la especificación explicita o implícita de la fuente de la información (es decir. Existen instrucciones para mover cantidades de datos de apenas un bit o hasta de la memoria entera. de algún modo. siempre queremos decir que se ha creado ahí una copia idéntica y que el original está todavía sin alterar en la posición 2000. En máquinas de palabra de longitud fija el número de palabras que deben moverse generalmente lo especifica la instrucción. Argumentos similares muestran que la instrucción para realizar f(P. Se supone que no se necesita explicar por qué las computadoras tienen instrucciones aritméticas. pero existen muchas de ellas. Las CPU de Intel tienen instrucciones de movimiento mucho más limitadas. el original) y el destino (donde se ha de colocar la copia). etc. de manera que también es posible mover cualquier cosa a cualquier lado. Cabe hacer comentarios similares respecto de las demás instrucciones booleanas. siendo el resultado también una palabra. Aunque haya 16 funciones de dos variables. tienen instrucciones para las 16. es innecesaria una función que calcule el valor CIERTO independientemente de los argumentos. todas las máquinas de nivel 2 tienen una instrucción para realizar la suma y la resta de enteros. El movimiento continúa hasta que se encuentra una marca de fin de datos en los datos mismos. en lugar de calcularla. Las instrucciones de movimiento de datos se podrían haber llamado más bien instrucciones de duplicación. Un uso muy importante de la función Y es la extracción de bits de las palabras.Instrucciones de movimiento de datos La operación de la copia de datos de un lugar a otro es la más fundamental de todas. con dos operándoos arbitrarios. Los datos se almacenan en diversos lugares. Supongamos que se necesita separar el segundo 161 . Los procesadores 680 x O tienen una instrucción MOVE para fines generales. si es que hay alguna. Por ejemplo. pero la forma en que se accede a ella es diferente del acceso ordinario a memoria. una máquina de palabra de 32 bits en la que se almacenan cuatro caracteres de 8 bits por palabra. pero el término “movimiento de datos” ya está establecido. Tres lugares comunes son una palabra de memoria determinada. Las máquinas de palabra de longitud variable a menudo tienen instrucciones que especifican solamente la dirección de la fuente y del destino pero no la cantidad. Excepto el micro de 8 bits. A veces existen asimismo instrucciones para medias palabras. En la práctica. por ejemplo. Por copia entendemos la creación de un nuevo objeto con la misma secuencia de bits que el original. puede haber instrucciones distintas para mover una palabra y para mover media palabra. dobles palabras. pero es diferente la forma en que se accede a las palabras. La pila puede estar en unos registros especiales o en memoria. se puede simplemente moverla hacia allá. Considérese. la memoria o la pila a cualquier lado. En máquinas de longitud de palabra fija. Q) = P debe ser bastante inútil. Esta instrucción puede mover datos entre los registros. indicar la cantidad de datos que va a moverse. también es corriente que tengan multiplicación y división de enteros. Cuando decimos que Manuel Mangosta se ha movido de Madrid a Barcelona. Este uso de la palabra “movimiento” es algo diferente al que se le asigna en español. Las instrucciones de movimiento de datos deben. como se puede ver en la figura 5-23. mientras que para meter o sacar un dato de la pila no hay que hacer un direccionamiento explícito. Si se necesita en alguna parte de la máquina la secuencia de bits que representa CIERTO. Un acceso a memoria requiere una dirección. no queremos decir que se creó una copia idéntica del señor Mangosta en Barcelona y que el original está todavía en Madrid. la función Y calcula bit por bit el Y booleano de dos argumentos de una palabra.

Para cambiar los 8 bits de la derecha de una palabra de 32 bits sin alterar los 24 bits restantes. especialmente las concebidas para dedicarse a trabajo científico. La operación O tiende a insertar unos. se hace un Y entre la palabra que lo contiene y una constante denominada máscara. por otro lado. El resultado de esta operación es el cambio de todos los bits no deseados por ceros (es decir. Esta simetría con respecto a los unos y los ceros es útil en varias ocasiones. La operación O es. se enmascaran). se suministran en varias modalidades. Un uso muy importante del O es el empaquetamiento de bits en una palabra. justificado a la derecha con ceros en los 24 bits de la izquierda. La diferencia entre el desplazamiento y la rotación se ilustra abajo. Las primeras computadoras realizaban la aritmética de punto flotante llamando a procedimientos preprogramados. para generar “números aleatorios”. Operaciones unarias Las operaciones unarias tienen un operando y producen un resultado. en media.ras. como se muestra abajo. 10110111 10111100 11011011 10001011 A 00000000 11111111 00000000 00000000 B (máscara) 00000000 10111100 00000000 00000000 A Y B El resultado deberá desplazarse ahora 16 bits a la derecha para aislar el carácter en la parte derecha de la palabra. como se muestra abajo. a no insertar ni eliminar unos. siendo el empaquetamiento lo contrario de la extracción. pero hoy día hay muchas computado. perdiéndose los que se salen de la palabra. tendiendo. por ejemplo. ya que siempre hay al menos tantos como tenga el operando que más tenga. los más cortos para obtener mayor velocidad y los más largos para cuando se necesitan muchos dígitos de precisión. Como tienen una dirección menos que especificar. Las instrucciones para desplazar o rotar el contenido de una palabra o de un byte son bastante útiles y. Algunas máquinas tienen números en punto flotante de varias longitudes. primero se enmascaran los 8 bits no deseados y luego se hace un O con el nuevo carácter. estas instrucciones son a veces más cortas que las binarias. Las rotaciones son desplazamientos en los que los bits que se salen por un lado aparecen en el otro. a menudo. Los desplazamientos son operaciones en que los bits se mueven a la izquierda o a la derecha. es decir es necesaria crear una palabra que contenga el carácter en los 8 bits de la derecha o. que tienen instrucciones de punto flotante al nivel 2 por razones de velocidad. Para extraer el carácter. como suele decirse. ya que nunca hay más unos en el resultado que en los operándoos.carácter de los otros tres para imprimirlo. 00000000 00000000 00000000 01110011 A 162 . simétrica. 10110111 10111100 11011011 10001011 A 11111111 11111111 11111111 00000000 B (máscara) 10110111 10111100 11011011 00000000 A Y B 00000000 00000000 00000000 01010111 C 10110111 10111100 11011011 01010111 (A Y B) 0 C La operación Y tiende a eliminar unos. Los números en punto flotante se comentan en el Apéndice B.

Si un entero positivo se desplaza k bits a la derecha. mientras que la parte entera de – 1/64 debería ser 0: 11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111 – 1 en complemento a 2 – 1 desplazado 6 bits a la derecha = – 1 Sin embargo. por ejemplo. en donde n es algún entero positivo. Sin embargo. siempre que no haya desbordamiento. dos desplazamientos y una suma. Todas las máquinas de nuestros ejemplos tienen una amplia variedad de instrucciones de desplazamiento / rotación. Considérese ahora la representación en complemento a 2 de – 1. Si se desean examinar todos los bits de una palabra. Desplazado 1 bit a la izquierda da – 3. Parece como si el bit de signo se estirara hacia la derecha. ésta vuelve a su valor original. El desplazamiento de números negativos. ello significa que un número negativo permanecerá negativo. Después de examinar todos los bits de la palabra. con excepción del desplazamiento a la izquierda. 0 o 1. El desplazamiento a la derecha de seis bits con extensión de signo da – 1. Sin embargo. el resultado es el mismo que si se hubiera rotado m – k bits a la derecha. La situación se ilustra abajo. donde se le puede examinar fácilmente. lo que muchas veces es más rápido que una multiplicación. 18 x n = 16 x n + 2 X n. 2 X n puede obtenerse desplazando n un bit a la izquierda. da resultados algo diferentes. el cálculo de 18 X n. 11111111 11111111 11111111 11110000 00111111 11111111 11111111 11111100 11111111 11111111 11111111 11111100 A A desplazado sin extensión del signo A desplazado con extensión del signo Un uso importante del desplazamiento es la multiplicación por potencias de 2 y la división entre ellas. Otro desplazamiento de 1 bit da – 7: 11111111 11111111 11111111 11111110 11111111 11111111 11111111 11111100 11111111 11111111 11111111 11111000 – 1 en complemento a uno – 1 desplazado 1 bit a la izquierda = – 3 – 1 desplazado 2 bits a la izquierda = – 7 EL desplazamiento a la izquierda en complemento a 1 no multiplica por 2. el desplazamiento a la izquierda simula la multiplicación por 2. La multiplicación se ha realizado con un movimiento. los compiladores prácticamente nunca generan ninguna de ellas. como una forma optimizada de multiplicar 163 . La suma de estos dos números es 18 x n. Si una palabra de n bits se rota k bits a la izquierda. consideremos el número – 1 en complemento a uno. la rotación de ésta un bit cada vez pone cada bit en el signo.00000000 00000000 00000000 00011100 11000000 00000000 00000000 00011100 A desplazado a la derecha 2 bits A rotado a la derecha 2 bits Tanto los desplazamientos a la izquierda como los que se hacen a la derecha son útiles. incluso con extensión de signo. Considérese. el resultado es el número original multiplicado por 2 k. Algunas comprenden al bit de acarreo y otras no. Esto significa que las posiciones que quedan libres por el lado izquierdo de la palabra se llenan con el bit de signo original. Si un entero positivo se desplaza k bits a la izquierda. el resultado es el número original dividido entre 2k. en ambas direcciones. Las operaciones de rotación son útiles para el empaquetamiento y desempaquetamiento de secuencias de bits en una palabra. 16 X n se puede obtener desplazando una copia de n cuatro bits a la izquierda. Por ejemplo. Los desplazamientos a la derecha se hacen a menudo con extensión del signo. El desplazamiento puede acelerar ciertas operaciones aritméticas. Entre otras cosas. el desplazamiento a la derecha simula correctamente la división.

Mover un cero a una palabra de memoria o a un registro es extremadamente corriente cuando se comienza un cálculo. Comparaciones y Saltos Condicionales Casi todos los programas deben tener la capacidad de examinar datos y después alterar el flujo de control en función de los resultados. en caso contrario realiza la raíz cuadrada. 164 . Naturalmente. se ejecutarán las instrucciones que comienzan en LUGAR si el número fue negativo o las siguientes al salto condicional. La operación de negar X es realmente hacer la resta binaria 0 . La condición más corriente a verificar es si un bit particular de la máquina es 0 o no. respectivamente. Ello permite al programa comprobar si un número (positivo) es par o impar con una sola instrucción. Dicha función de los resultados. se puede hacer un salto a una rutina de error. Si el número es 0. se suele disponer de una operación de BORRAR con una sola dirección. De modo similar. El movimiento de un cero es. Un acarreo del bit de la izquierda es completamente normal y no debe confundirse con un desbordamiento. el procedimiento da un mensaje de error. que muchas máquinas de nivel 2 tienen instrucciones unarias que las realizan rápidamente. También se usa muchas veces la suma de un l a un registro o a una posición de memoria para contar. uno de los argumentos más fuertes en contra de la aritmética de complemento a 1 y a favor de la de complemento a 2. TRAPV. necesitaría de una comprobación distinta de cada bit para asegurar que ninguno está a 1. dependiendo de sí es negativo o no. Un método corriente de hacerlo es proporcionar instrucciones de salto condicional (a menudo llamadas de bifurcación condicional) que comprueben alguna condición y salten a una dirección de memoria particular si la condición se cumple. Algunas máquinas tienen una instrucción para comprobar el bit de la derecha de una palabra. porque matemáticamente + 0 = – 0. Si todas las instrucciones de salto condicional examinaran solamente un bit. La misma comprobación hecha en complemento a 1 bifurcará a LUGAR siempre que el número comprobado sea menor o igual que – 1 y nunca saltará a LUGAR si dicho número es mayor o igual que 1. sí se suman dos números negativos). Algunas veces se puede poner algún bit de la instrucción a 1 o 0 para indicar si el salto debe ocurrir cuando la condición se cumple o no. Para evitar esta situación. Por eficiencia. Dicha función tiene que examinar el argumento y luego bifurcar. En la práctica.X. el salto tendrá o no lugar según sea + 0 o – 0. algunos procesadores tiene un bit de acarreo que se pone a 1 cuando tiene lugar un acarreo de bit de la izquierda (por ejemplo.por una potencia de dos. si lo hubo. el procedimiento da un mensaje de error. Si el argumento es negativo. si fue 0 o positivo. a poner a cero). puede haber un bit de desbordamiento que se ponga a 1 siempre que una operación aritmética dé un resultado incorrecto. la de la posición a borrar (es decir. Al comprobar este bit se detecta si hubo desbordamiento en la operación aritmética anterior y. Una forma unaria de la instrucción de sumar es la operación de incrementar. Esto es sin duda incómodo. la comprobación de sí una palabra particular está en cero. en caso contrario realiza la raíz cuadrada. Ciertas operaciones binarias ocurren con tal frecuencia con determinados operándoos. La 68000 tiene incluso una instrucción especial corta. en realidad. Si el argumento es negativo. pero también se suministra a veces como una instrucción distinta. Un ejemplo simple es la función raíz cuadrada. que hace un desvío si el bit de desbordamiento está activo. La comprobación del bit de acarreo se necesita en la aritmética de precisión múltiple. naturalmente. Muchas máquinas tienen bits que indican condiciones específicas. Un ejemplo simple es la función raíz cuadrada. que añade 1. y éste es. La operación de negar es otro ejemplo. un caso particular de las instrucciones generales de mover. Por ejemplo. esta solución lo único que hace es pasarle la pelota al nivel l. muchas máquinas tienen una instrucción por la que examinan una palabra y saltan si es cero. La comprobación de cero es muy importante para iteraciones y para muchos otros fines. Si una instrucción comprueba el bit de signo de un número en complemento a 2 y bifurca a LUGAR si es 1.

por ejemplo. etc. se necesitan tres direcciones. Si hacen +0= –0. Se presentan algunas cuestiones delicadas al comparar dos números. cuál es mayor. si no lo son. ésta tendrá 32 unos. en ordenamientos. Por ejemplo. un programa de proceso de textos podrá llegar a la conclusión errónea de que las dos palabras contienen los mismos cuatro caracteres. ya que –1 sumando a +1 puede dar -0 como resultado. 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 . Si se almacenaran cuatro caracteres con código 0 en una palabra. ésta contendrá 32 ceros. si el primero era mayor. si el hardware tratara –0 y +0 como distintos. también es importante. Si se almacenaran cuatro caracteres con código 255 en otra palabra. entonces el hecho de que una comparación produzca igual no significa que las secuencias de bits de los datos comparados sean las mismas. Las máquinas de ejemplo usan esta aproximación. Si al comparar estas dos palabras resultaran iguales porque +0 = –0. en máquinas complemento a 1. La consecuencia es que las máquinas con aritmética en complemento a 1 están desapareciendo lentamente. ver cuál es mayor. Las máquinas de complemento a 2. Considérese una máquina con palabra de 32 bits en la que se almacenan cuatro caracteres de 8 bits. que incluyen los ejemplos. no tienen problemas con +0 y –0. Primero. No es necesario decir que esta situación es totalmente indeseable. 00000000 00000000 00000000 00000000 + 0 en complemento a1 11111111 11111111 11111111 11111111 . dos para los datos y otra para la dirección a la que se ha de saltar si la condición es verdadera. Sin importar la decisión que tomen. entonces el resultado de comparar la suma de –1 y +1 con +0 podría dar que no son iguales. pero aquellas que no las permiten sí lo tienen y deben hacer algo para evitarlo. distintos. Una solución común consiste en dotarlas de una instrucción que compare ambos datos y ajuste uno o más bits de condición para registrar el resultado. Las computadoras cuyo formato de instrucción permiten tres direcciones por instrucción no tienen ningún problema. Hay dos formas de ordenar de menor a mayor los ocho números binarios de tres bits. Para realizar esta comprobación.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 algún bit a 1. hay argumentos convincentes para afirmar que la decisión es errónea. La comparación de dos palabras o caracteres para ver si son iguales y. Por otro lado. Una instrucción posterior puede comprobar los bits de condición y saltar si los dos valores comparados eran iguales. si no lo son. en una máquina de 32 bits.0 en complemento a1 Los diseñadores tienen que decidir si +0 y –0 son iguales y. Otro punto delicado en relación con la comparación de números es la decisión por la que los números deben considerarse con signo o sin él. pero las de complemento a 1 sí los tienen. +0 y –0 son diferentes.

El procedimiento podría retornar con un salto indirecto a la primera palabra o.La columna de la izquierda muestra los enteros positivos del cero al siete en orden creciente. En algunas máquinas pueden saltarse varias instrucciones en vez de una sola. El 68000 tiene varias instrucciones de este tipo. Instrucciones de llamada a procedimiento Un procedimiento es un grupo de instrucciones que realizan alguna tarea y al que se le puede involucrar (llamar) desde diversos puntos del programa. 166 . sacará la dirección de retorno de la pila y la meterá en un contador de programa. Si el procedimiento se llamara a sí mismo. este es un número entre –128 y +127. La habilidad de que un procedimiento se pueda llamar a sí mismo. Por tanto. de modo que cabe en un byte. A veces se usa el término subrutina en lugar de procedimiento. La peor solución es ponerla en una única posición fija de memoria. Una ligera mejora consiste en que la instrucción de llamada a procedimiento almacene la dirección de retorno en la primera palabra del procedimiento. deberá poner la dirección de retorno en un lugar diferente cada vez que se la llame. el número de las que se van a saltar viene especificado en la propia instrucción. La mayoría de las máquinas tienen instrucciones para las dos formas de ordenar. porque la segunda dirección de retorno destruiría a la primera. Cuando un procedimiento termina su tarea. llamada recursión. tampoco funciona este esquema. reviste extrema importancia tanto para los teóricos como para los programadores que hacen el trabajo práctico. La instrucción que se omite será con frecuencia una de salto. un registro o la pila. El salto incondicional es un caso especial del salto condicional en el que la condición siempre se cumple. si el hardware pone el código de operación de la instrucción de salto junto a la dirección de retorno. la recursión no planteará problemas especiales: las direcciones de retorno se salvarán de manera que se evite la destrucción de las anteriores. éste llama a C y C llama de nuevo a A (recursión indirecta). saltando directamente a ella. Todas las máquinas de ejemplo utilizan este método. si un procedimiento A llama a B. la segunda llamada haría que se perdiera la dirección de retorno de la primera. se debe transmitir la dirección de retorno al procedimiento para que sepa dónde retornar. dejando al procedimiento la responsabilidad de almacenarla en un lugar seguro. debe retornar a la sentencia que sigue a la de llamada. Con este método. si el procedimiento llamara a otro. especialmente si se trata de programas en lenguaje ensamblador. Cuando el procedimiento haya terminado. ya que cada uno tiene espacio para una dirección de retorno. La de la derecha muestra los enteros con signo desde –4 a +3 en complemento a 2. El procedimiento puede llamar a otros. Una mejora consistirá en que la instrucción de llamada a procedimiento ponga la dirección de retorno en un registro. este esquema fallaría. Por lo general. Si se dispone de esta forma de llamada a procedimiento. Hay tres lugares donde se pone la dirección de retorno: la memoria. Lo mejor que puede hacer la instrucción de llamada a procedimiento con la dirección de retorno es metería en una pila. estando la primera instrucción ejecutable en la segunda palabra. Las máquinas que tienen menos de tres direcciones por instrucción a veces tratan las comparaciones con una instrucción que se salta u omite la siguiente instrucción si la condición se cumple. Si el procedimiento es recursivo. Es más. La respuesta a la pregunta “¿Es 011 mayor que 100?” Depende de que los números se consideren con o sin signo.

Obsérvese que la comprobación es diferente en ambos casos. En caso contrario. pongamos un programa que mantiene los registros del personal de una empresa. sexo y fecha de nacimiento. la iteración termina y se pasa ejecutar la siguiente instrucción. si aún no se ha satisfecho la condición de terminación. leyendo su nombre. la iteración termina. por ello. para que la empresa pueda mandarle un regalo el día de su cumpleaños (es una atención de la empresa). mandando regalos y dando resultados erróneos. Lee en n el número de hijos que tiene dicho empleado y ejecuta una iteración n veces. que funciona satisfactoriamente aunque n sea menor o igual que 0. n será 0 pero la iteración se ejecutará una vez. Un método pone un valor inicial en un contador y luego pasa a ejecutar el código de la iteración. En cierto punto el programa está leyendo información de tarjetas acerca de determinado empleado. La figura 5-40(b) muestra otra forma de realizar la comprobación. Si se verifica cierta condición. Esta forma de hacer iteraciones se caracteriza por hacer la comprobación al final. Considérese el código que debería producirse con la sentencia Pascal. La última instrucción de la iteración actualiza el contador y. Todos los métodos requieren de un contador que se incrementa (o decrementa) en alguna constante cada vez que se pasa por la iteración. Por ejemplo. 167 . de modo que los diseñadores han de elegir un método o el otro. Si el empleado no tiene hijos. algunas máquinas tienen instrucciones para facilitarlo. como se muestra en la figura 5-40(a).Control de iteraciones Es frecuente que se necesite ejecutar un grupo de instrucciones un número fijo de veces y. una por hijo. salta a la primera del lazo. aunque n sea menor o igual que 0. Las iteraciones con comprobación al final tienen la propiedad de ejecutarse siempre una vez al menos.

b) Iteración con comprobación al principio. . tienen una sola instrucción de entrada y una sola de salida. Si. E / / / / S S S S programada. Estos. aunque ahorrara una instrucción de salto por iteración. Si el resultado es 0 o más. en caso contrario se da por termina. {segunda sentencia} {primera sentencia} . E 4. la cual decrementa en uno los registros CX / ECX y salta a una etiqueta dada. la iteración se repite. El método más sencillo posible es E / S programada. {última sentencia} . . Estos son: 1. la ejecución continúa con la siguiente instrucción. 168 . manejada por interrupciones. end i: = l. pudiera determinar que n >0.. se encuentran en uso cuatro diferentes esquemas de E / S. 1: {primera sentencia} 1: if i > n then goto 2. saliendo de la iteración si ésta se cumple. 5-40. Entrada / salida Ningún otro grupo de instrucciones presenta tanta variación de máquina a máquina como el de las instrucciones de entrada / salida. i:i = 1. i: =1. Cada una de estas instrucciones selecciona uno de los dispositivos de E / S y se transfiere un solo carácter entre un registro fijo del procesador y el dispositivo seleccionado. {segunda sentencia} . seguiría la aproximación de la figura 5-37(b) para tratar correctamente el caso de n < 0.for i : = 1 to n do bigin . El procesador debe ejecutar una instrucción explícita para cada uno de los caracteres que se leen o escriben. que primero verifica los códigos de condición para una condición dada. el cual se usa en algunos microprocesadores de orden inferior. podría usar un código como el mejor de la figura 5-40(a). usando canales de datos. . Todas las CPU de Intel realizan iteraciones en un número fijo de veces utilizando la instrucción LOOP. goto 1. el registro D se decrementa. {última sentencia} if i < = n then goto 1. A continuación se describirá cada uno de estos esquemas. En caso de ser cero. 2: {primera sentencia después 2: {primera sentencia después de de la iteración} la iteración} (a) (b) Fig. de Acceso Directo a Memoria (DMA). Si el compilador no tuviera ninguna información sobre n. para permitir que siempre se generara el código más eficiente de la figura 5-40(a). i: =i+1. Si la condición es falsa.da la iteración y se ejecuta la instrucción que le sigue. E 2. La primera normalización del lenguaje FORTRAN especificaba que todas las iteraciones se ejecutaran al menos una vez. a) Iteración con comprobación al final. en cambio. En 1977 se corrigió este defecto cuando incluso la comunidad de usuarios del FORTRAN empezó a darse cuenta de que no era una buena idea que la sentencia de iteración tuviera una semántica exótica.. En la actualidad. viendo dónde se asigna un valor a n. por ejemplo. E 3. Las 680 x 0 tienen una instrucción en cierto modo más general. si el resultado no es igual a cero.

los cuatro registros forman parte del espacio de direcciones y se pueden leer o escribir por medio de instrucciones ordinarias. Dos de los registros se usan para entrada. Cada registro tiene una dirección única. Para hacerlo. el software lee el registro del buffer del teclado. El registro de estado del teclado tiene 2 bits que se utilizan y 6 que no se usan. Leer el registro de datos del teclado provoca que el bit LISTO se ponga en 0. Para escribir un carácter en la pantalla. dejando el bit LISTO en el bit 0. El cuerpo del procedimiento es una iteración que despliega un carácter a la vez.cal de la figura 5-42. 169 . para chequear si el bit LISTO está en 1. el software escribe un carácter en el buffer del registro de despliegue.Como un ejemplo sencillo de este método. El bit más hacia la izquierda (7) adquiere del hardware el valor de l siempre que llega un carácter. estado y datos. En caso contrario. el controlador vuelve a poner en l al bit LISTO. el software lee el registro de estado de despliegue. la CPU entra en una iteración. La operación de salida opera en forma similar. Si no es así. considérese el procedimiento en Pas. en caso contrario. y los otros dos para salida. lo que provoca que se transmita a la pantalla. Tan pronto como la terminal está lista. A este procedimiento se le llama a ejecución con dos parámetros: un arreglo de caracteres a ser desplegado y el número de caracteres que contiene dicho arreglo. Cuando se usa E / S programada para recibir información. así como también estado y datos. esto no ocurre (las interrupciones se abordarán en breve). hacia o desde la variable especificada por el segundo parámetro. considérese una terminal con cuatro registros de 1 byte. realiza una iteración hasta que el bit sea l. Cuando esto sucede. Los procedimientos in y out serian rutinas típicas en lenguaje ensamblador para leer y escribir los registros especificados por el primer parámetro. así como que el dispositivo borre el bit LISTO en el registro de estado. La división entre 128 se deshace de los 7 bits de orden inferior. hasta 1K. indicando de ese modo que el dispositivo está listo para aceptar un carácter. Si se utiliza E / S mapeada en memorias. esperando a que se encienda el bit 7. para obtener el carácter. se proporcionan instrucciones especiales de E / S. llamadas IN y OUT. En ambos casos. Si previamente el software fijó el bit 6 en 1. como se muestra en la figura 5-41. Cuando la terminal ha desplegado el carácter y está preparada para manejar el siguiente. leyendo constantemente el registro de estado del teclado. se genera una interrupción. la CPU debe aguardar hasta que el dispositivo esté listo (ready= l). Como ejemplo de la E / S programada. las operaciones de E / S se realizan transfiriendo datos e información del estado entre la CPU y estos registros. para leer y escribir los registros.

Sin embargo. no habría ningún problema. En es. se estudiarán en detalle las interrupciones. De ahí que sea necesario primero inicializar el dispositivo e inmediatamente después habilitar las interrupciones. Si la CPU no tuviera nada más que hacer (v.te caso.foque se denomina ocupado en esperar. con acceso directo al bus. En la figura 5-41 se puede observar como se hace esto. esperando a que el dispositivo esté listo. Este en. (La solución a muchos problemas reside en dejar que otro haga el trabajo). ésta ocurrirá de inmediato ya que el bit LISTO tendrá el valor de 1. la CPU de una lavadora)..g. que el hardware le dé una señal cuando la operación de E / S termine. Aunque la entrada / salida manejada por interrupciones significa un gran adelanto comparada con la E / S programada. Si primero el software habilita interrupciones (antes de la operación de E / S). La forma de evitar esta espera. si hay otros trabajos como ejecutar programas. 170 . La solución reside en retomar la E / S programada.La principal desventaja de la E / S programada es que la CPU pasa la mayor parte de su tiempo en un lazo. pero haciendo que alguien diferente la lleve a cabo. activando el bit HABILITA INTERRUPCIÓN en un registro del dispositivo. Vale la pena mencionar que en muchas computadoras la señal de interrupción se genera aplicando el AND booleano a los bits HABILITA INTERRUPCIÓN y LISTO. Escribir en el registro de estado no modifica al bit LISTO. dicha espera es un desperdicio. por lo que se requiere de un método para las operaciones de E / S. Se necesitaba de una forma para deshacerse de la mayoría de las interrupciones. por ser sólo de lectura. Más adelante en este capítulo. es hacer que la CPU inicialice el dispositivo de E / S y le indique que genere una interrupción cuando haya terminado su operación. bajo el tema de flujos de control. La figura 5-43 muestra cómo se organiza esto. de Acceso Directo a Memoria (DMA). El software puede solicitar. está lejos de ser perfecta. se ha incorporado una nueva pastilla controladora para el sistema. El problema consiste en que se requiere de una interrupción para cada carácter transmitido y procesar interrupciones resulta caro.

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

verificar el fin de archivo) y. READ. Para realizar operaciones de E / S en una computadora con canales de datos. o indirectamente.g. En contraste. Las instrucciones TEST I / O y TEST CHANNEL se usan para determinar el estado actual de las actividades de E / S. ya sea en forma directa por medio de un campo en la propia instrucción. la CPU tiene otras instrucciones como HALT I / O que fuerza la detención de toda actividad en el canal seleccionado. Ninguna de las pastillas de Motorola tiene instrucciones de E / S. 172 . un canal selector sólo puede manejar una transferencia a la vez. para una macrocomputadora típica.g. un canal multiplexor. Un canal selector. 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. usando el registro DX para almacenarlo. así como algunos bits de bandera. un contador que indica cuántos bytes se van a transferir. el canal extrae la dirección de su programa de una localidad fija en la memoria. involucrando la transferencia de muchos bloques de datos. Ya que un programa de este tipo puede ser muy complicado. READ BACKWARD (v. Existen también disponibles otras cuantas instrucciones menores de E/S. o en dónde se leerán o escribirán los datos. Todas las CPU de Intel tiene instrucciones explícitas de E / S para leer o escribir bytes. palabras o palabras largas. tales como los discos. Las instrucciones del canal incluyen también una dirección de buffer de 24 bits para señalar de dónde. coloca dicha dirección en su registro de contador de programa y comienza a ejecutar su programa de canal. para rebobinar cintas magnéticas). la CPU primero crea un programa para el canal y lo almacena en la memoria principal. el canal interrumpe a la CPU. que indica qué operación realizar. Cada instrucción contiene un código de operación de 8 bits. En virtud de que ni los microprocesadores de Intel ni los de Motorola utilizan canales de datos.. puede manejar al mismo tiempo diversos dispositivos de baja velocidad. CONTROL (v. se usará como ejemplo la estructura de E / S de una de las grandes macrocomputadoras de IBM. Debido a la alta velocidad de estos dispositivos. Además de la instrucción START I / O. Enseguida. Se supone que los registros de los dispositivos de E / S serán direccionados por medio del mapeo a memoria. como son las terminales. Un canal es en realidad una computadora especializada. Existen dos tipos de canales. que específica el canal y el dispositivo de E / S. que controla los dispositivos de alta velocidad.. el DMA se utiliza mucho. Estas incluyen: WRITE. Estas especifican el número de puerto de E / S deseado.g. Además.en la figura 2-19. CONDITIONAL BRANCH. También aquí. SENSE (v. Cuando el programa ha sido ejecutado. arrancar el motor).. Estos últimos especifican aspectos como la no transmisión de datos (útil para salvar un registro en una cinta) y “detener el canal después de terminar esta instrucción”. En la figura 5-44 se muestran las diversas palabras comprendidas en el proceso. A continuación. Un programa de canal consta de una o más instrucciones de 64 bits para el canal. por supuesto se utilizan las pastillas DMA para liberar a la CPU de la carga de las operaciones de E / S. se necesita un menor número de interrupciones que con las simples transferencias de DMA. ejecuta una instrucción START I / O (Inicia E / S).

se extrae la que le sigue en la memoria y se ejecuta. En general. se verá que es. Flujo de control secuencial y saltos La mayoría de las instrucciones no alteran el flujo de control. Los desvíos y las interrupciones también producen el mismo efecto en condiciones especiales. Después de cada instrucción el contador de programa se incrementa en el número de posiciones de memoria que dicha instrucción ocupa. Las corrutinas están relacionadas con los procedimientos y causan alteraciones similares al flujo. aproximadamente. una función lineal del tiempo.FLUJO DE CONTROL El flujo de control se refiere a la secuencia en que se ejecutan las instrucciones. Todos estos temas se verán en las secciones siguientes. no se mantiene esta relación tan simple entre el orden en que las instrucciones están escritas y el orden en que se ejecutan. incrementándose en la longitud media de instrucción cada tiempo medio de ejecución de instrucción. Si un programa tiene saltos. Si se observa el contador de programa durante un largo periodo comparado con el tiempo medio de ejecución de una instrucción. deteniéndose el procedimiento en curso y arrancando el que ha sido llamado. el contador de programa deja de ser una función monótona creciente de tiempo. el orden dinámico en el que el procesador realmente ejecuta las instrucciones es el mismo que el orden en que éstas aparecen en el listado del programa. las que se realizan consecutivamente se extraen de posiciones consecutivas de memoria. Después de ejecutarse una. Dicho de otro modo. Cuando hay saltos. como se 173 . Las llamadas a procedimientos alteran el flujo de control.

que es un procedimiento que se llama a sí mismo. El estudio de este tipo de procedimientos proporciona una profundidad considerable de cómo están implementadas las llamadas a procedimientos y de lo que son en realidad las variables locales. es fácil que cometan errores. Desde este punto de vista. tal como la iteración WHILE. Desde luego. ya que la implantación de IF. Cada uno de ellos tiene un diámetro más pequeño que el que está justo por debajo de él. 174 . Cuando los programadores tienen problemas en seguir la secuencia en que e! procesador va a ejecutar las instrucciones. de manera que nunca haya un disco mayor sobre uno menor. Las otras dos varillas están vacías inicialmente. Para comprender la parte de un programa que contiene una llamada a un procedimiento. como lo hace el salto. En consecuencia. aunque pueda ser bastante complicada. Procedimientos La técnica más importante para estructurar programas es el procedimiento. Esta observación llevó a Dijkstra (1968) a escribir el controvertido articulo “La declaración GO TO considerada perjudicial”. una llamada a procedimiento puede considerarse como una simple instrucción. El problema consiste en transferir todos los discos a la varilla 3. pero a diferencia de éste devuelve el control a la sentencia que sigue a la llamada. La figura 5-46 muestra la configuración inicial para n = 5 discos. en la que se sugiere evitar las declaraciones GO TO. se hace difícil visualizar la secuencia de ejecución a partir del listado del programa. A continuación se dará un ejemplo de un procedimiento recursivo. una de cuyas premisas en la sustitución de las declaraciones GO TO con formas más estructuradas de flujo de control. una vez que ha terminado de realizar su tarea. Un tipo muy interesante es el procedimiento recursivo. Hay tres varillas. estos programas se compilan en el nivel 2. Desde cierto punto de vista. desde otro punto de vista el cuerpo del procedimiento se puede considerar como si definiera una nueva instrucción de nivel superior. Sin embargo. no cómo lo hace. sólo se necesita saber qué hace. uno cada vez. Un viejo problema que tiene una solución sencilla por medio de la recursión es el de las “ Torres de Hanoi”. una llamada a procedimiento altera el flujo de control. la primera de las cuales pasan por el centro de una serie de n discos concéntricos.muestra en la figura 5-45. Dicho artículo hizo nacer la revolución de la programación estructurada. y pueden contener muchos saltos. WHILE y otras estructuras de control de alto nivel requieren de saltos.

la solución consta de tres partes como la que acabamos de comentar.La solución de mover n discos de la varilla l a la 3 consiste en mover primero n – 1 discos de la varilla 1 a la 2. Se ha seleccionado esta convención porque la mayoría de las computadoras. para la dirección de retorno. Para que los procedimientos sean recursivos. l. incluyendo las de Intel y Motorola. haciendo un total de siete. Cuando se llama al procedimiento por medio de torres (n. El procedimiento comprueba primero sí n = 1. necesitamos un procedimiento que mueva n discos de la varilla i a la j. 3) torres (2. 3) La primera y tercera llamadas generarán cada una tres llamadas más. La solución completa se muestra en la figura 5-48. almacene una palabra en la dirección dada por el apuntador de pila y luego decremente dicho apuntador según el tamaño de la palabra. De ahí que una instrucción PUSH (Apila). la solución es trivial. ya que n no es 1. 3) La llamada para resolver el problema de la figura 5-47. se necesita una pila donde almacenar los parámetros. 2) torres (l. Para resolver el problema. siendo cada una de ellas una llamada a un procedimiento recursivo. torres (3. En nuestros ejemplos supondremos que la pila siempre crece hacia abajo. Si lo es. 175 . Cada vez que se llama a un procedimiento. generará tres llamadas más. denominado trama de pila. Si n ≠ i. Concretamente: torres (2. i. 2. j) Se imprime la solución. hacen las cosas de esta manera. nada más que moverlo de la i a la j. se reserva en ella un bloque de memoria. los parámetros y las variables locales si las hay. de las direcciones altas de memoria a las bajas. La trama más reciente es la trama actual. l. l. Seguidamente se mueve un disco de la l a la 3 y luego los n-1 discos de la 2 a la 3 (véase figura 5-42).

La situación. 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. a menudo conviene tener un apuntador de base local. AP se decrementa en 2. colocándola en la 994. 176 . después de hacer todas estas cosas. i y j.Además del apuntador de pila. se muestra en la figura 5-49(a). Al entrar. La pila comienza en la dirección 1000 y crece hacia abajo. La figura 5-49 muestra la trama de pila para una máquina con palabras de 16 bits. que apunta a la cima de la pila (dirección numérica más baja). La llamada original a torres apilan n. y ejecuta una instrucción de llamada que apila la dirección de retorno. hacia la dirección 0. el apuntador de pila. BL. que apunte a un punto fijo de la trama. Con una sola variable local de 16 bits.

En las CPU de Intel. Lo primero que un procedimiento debe hacer es salvar el BL previo (de modo que pueda recuperarse a la salida del procedimiento). 3) La figura 5-49(a) muestra la pila justo después de hacer esta llamada. según se apilan y desapilan palabras. El procedimiento comprueba primero si n = l y. aprenderán a evitar la escritura de muchos procedimientos cortos y a escribir en su lugar programas largos. para hacer referencia a las variables locales y a los parámetros debido a que sus distancias a BL no cambian con las operaciones de apilar y desapilar. Sin embargo. en algunas máquinas. Para ilustrar el uso de una pila en la realización de procedimientos recursivos. estos desplazamientos cambian. como en las Intel. En principio. Una de las características más importantes de cualquier computadora reside en qué tan corto y rápido puede hacer el prólogo y el epílogo. requiere considerable trabajo. Cada llamada a procedimiento añade a la pila una nueva trama y cada retorno elimina de ella una trama. Las instrucciones ENTER y LEAVE de Intel y las instrucciones LINK y UNLK de Motorola se diseñaron para que realicen la mayor parte del trabajo de los procedimientos de prólogo y epílogo de forma eficiente. al descubrir que n = 3. cualquier registro de direcciones. Volvamos ahora al problema de las Torres de Hanoi. la pila debe limpiarse de nuevo. Además. En consecuencia.les los tienen negativos. Aunque en algunos casos el compilador puede conocer y seguir el número de palabras que hay en la pila. Este código se llama prólogo del procedimiento. l. mediante el llamado_ epílogo del procedimiento. Si son largos y lentos. en todo caso. excepto el A7 (el apuntador de pila) lo puede hacer. En las de Motorola. se puede hacer referencia a las variables con desplazamientos respecto a AP. las llamadas a procedimiento serán costosas. podemos explicar para qué sirve BL. monolíticos y sin estructura. comenzando con torres (3. muchos compiladores usan un segundo registro. hace la llamada 177 . Hasta la salida del procedimiento.Una vez dicho esto. otras veces no puede y. vamos a hacer un trazado de llamadas. Los parámetros tienen desplazamientos positivos respecto a BL y las variables loca. copiar AP a BL y avanzar AP para reservar espacio a las variables locales. el acceso a variables situadas a una distancia conocida del AP requiere del orden de media docena de instrucciones. Los programadores que rindan culto a la eficiencia. BL. el registro BP (EBP) se usa para este fin.

3) Entonces la pila está como se muestra en la figura 5-49(c) y el contador de programa apunta al comienzo del procedimiento. A las normas que regulan el cómo se pasan los parámetros se les conoce como secuencia de llamado. 2) Esta añade una trama a la pila. después del retorno. 1. 2) Después de completar esta llamada. Las llamadas a procedimientos continúan de esta manera hasta que la llamada original termina de ejecutarse y se elimina de la pila la trama de la figura 5-49(a).torres (2. El procedimiento continúa ejecutándose en la dirección de retorno. como se muestra en la figura 5-49(e). l. elimina una trama de la pila y deja BL y AP como en la figura 5-49(d). 178 . Se pueden pasar parámetros por registro o por la pila. 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). se elimina una trama de la pila. Se imprime otra línea y. Esta vez la comprobación tiene éxito y se imprime una línea. Esta vez la comprobación de sí n = 1 falla de nuevo y se hace la llamada torres (1. que es la segunda llamada: torres (l. l. Seguidamente el procedimiento retorna.

la ejecución no comienza al principio de A. B comienza a ejecutarse desde el principio. La simetría viene del hecho de que cuando pasa el control de A a B. A y B. Pone entonces la dirección de B en el contador de programa para completar la llamada. ya que ni A ni B son el programa principal.Corrutinas En la secuencia ordinaria de llamada es clara la distinción entre el procedimiento que llama y el llamado. Cuando B retorna a A. Esta diferencia se refleja en el método por el que se pasa el control de A a B. cada una de las veces que arrancara B. no va al principio (excepto la primera vez) 179 . por ejemplo en la cima de la pila. en el transcurso de la ejecución. A primera vista podría considerarse simétrica esta situación. Cuando A transfiere control a B. Cuando B retorna. que simplemente desapila la dirección de retorno y la mete en el contador de programa. Considérese el procedimiento A. A llamara a B muchas veces. no en la sentencia que sigue al retorno anterior. cada uno de los cuales llame al otro como a un procedimiento. sino en la sentencia que sigue a la llamada. éste comenzaría por el principio. sino que son procedimientos (el procedimiento A podría haber sido llamado por el programa principal. la ejecución comenzaría al principio de B de nuevo. que pone la dirección de retorno (es decir. la de la primera sentencia que sigue a la llamada) en algún sitio útil. Cuando A llama a B. pero este hecho es irrelevante). El procedimiento B hace cálculos un rato y retorna a A. mientras que A nunca lo hace. sino la de retorno. Además. en la figura 5-50. como antes. Cuando B retorna a A. Si A se ejecutara durante un rato y llamara a B otra vez. que llama al procedimiento B. A veces es útil tener dos procedimientos. no usa la instrucción de llamada. usa la instrucción de llamada a procedimiento. Si. salta la sentencia que sigue a la llamada a B. primero hay una transferencia de control de A a B (la llamada) y más tarde una transferencia de control de B a A (el retorno).

tal como se describe aquí. pero. después metería el contador de programa en la pila y. ya que se saca una palabra de la pila y se mete otra. En este momento desea ignorar el comentario para continuar analizando. Esta operación se podría efectuar en forma sencilla si hubiera una instrucción que intercambiara la cima de la pila y el contador de programa.53. a la más reciente llamada a A. En cualquier lugar de un programa el programador puede insertar un comentario precedido y seguido del símbolo #. se necesitan dos o tres instrucciones para hacer el trabajo. 180 . Una secuencia de llamadas a corrutinas debe iniciarse metiendo la dirección de una de ellas en la pila. más a menudo. Sin embargo. instrucción de reanudar. Para ilustrar con un ejemplo el uso de las corrutinas. En la figura 5-52 se ejemplifica la instrucción REANUDAR. la llamada a la corrutina pone a su vez una dirección de retorno en alguna parte para hacer un retorno posterior a ella. se llaman corrutinas. Los comentarios son usados por el sistema de documentación para producir el manual. esta instrucción podría extraer primero la antigua dirección de retorno de la pila. realiza cierto trabajo y retorna a la sentencia que sigue a la llamada).sino a la sentencia que sigue al “retorno” más reciente. ya que los que escriben manuales de programación parecen tener grandes dificultades con el idioma. El apuntador de pila no cambia. El programa descrito se puede escribir como dos corrutinas. como en un retorno. Ni la llamada ni el retorno ordinarios bastarán para llamar a las corrutinas. La corrutina del programa (el compilador) comienza leyendo la entrada y analizándola según viene. una para analizar sintácticamente el programa y otra para analizar sintácticamente el castellano. introduciéndola en un registro temporal interno. El programa es usado por el compilador para producir el programa objeto. De hecho existe en algunas máquinas de nivel 2. finalmente transferiría el contenido del registro temporal al contador de programa. #. Llega un momento en que encuentra el primer símbolo de comentario. supondremos que la parte de documentación es muy inteligente y analiza sintácticamente todos los comentarios para estar segura de que no cometen errores gramaticales. a veces. cada uno de los cuales considera el otro como un procedimiento (en el sentido de que es llamado. es decir. En detalle. El compilador ignora los comentarios y el sistema de documentación ignora el programa. Dos procedimientos. Para ello. ya que la dirección a la que se ha de saltar viene de la pila. Un ejemplo de entrada se muestra en la figura 5. a diferencia del retorno ordinario. y se salta el comentario. el compilador llama a la corrutina de documentación. Una introducción de llamada a corrutina se denomina. Para hacer el problema interesante. Ver tambien figura 5-51. considérese un sistema de programación muy avanzado que suministre documentación automática de los programas.

se dicho texto. El analizador sintáctico de castellano puede estar en un estado muy complicado en este momento y es esencial que. ya que cada corrutina puede también llamar a procedimientos en la forma ordinaria. Desde su punto de vista. arranque al analizador de comentarios en el estado en que estaba cuando reanudó al compilador. además de hacer llamadas a corrutinas. debe ignorar el texto del programa. 181 . cuando el compilador se haya comido el siguiente trozo del texto del programa. no por el principio. El compilador arrancará. Aquí debemos notar que para realizar corrutinas se necesitan múltiples pilas. En cierto momento lee el símbolo de comentario. de manera que regresa al compilador para saltar. desde el punto en que se detuvo.El sistema de documentación comienza leyendo y analizando el comentario. con todas sus variables y apuntadores internos intactos.

Otro método 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 instrucción explícita de salto si el bit de desbordamiento está a 1” después de cada instrucción aritmética.nominado procedimiento controlador de desvíos por desbordamiento. También ahorra memoria. En muchas computadoras. # si no. normalmente una condición importante aunque improbable. los desvíos se implementan haciendo que el microprograma realice la verificación. que realizará alguna acción apropiada. tal como imprimir un mensaje de error. # pon una bandera # Nuevo avión # pide otro avión # end else reserve(pasajero). ya que la puede hacer fácilmente al mismo tiempo que alguna otra cosa. El desvío puede implementarse por medio de una comprobación explícita efectuada por el intérprete a nivel 1. tendrá lugar un desvío. La característica esencial del desvío es que se inicia en alguna condición excepcional causada por el programa mismo y detectada por el hardware o por el microprograma. Si el resultado de una operación cae en el rango correcto. violación de 182 . Lo que es un desvío en un nivel puede estar bajo control del programa en un nivel inferior. en lugar de continuar en secuencia. Hacer esto sería lento y costaría mucho espacio. si el resultado de una operación aritmética excede al mayor número que pueden representar. cargará la dirección del desvío en el contador de programa. Desvios Un desvío es un tipo de llamada automática a procedimiento iniciada por alguna condición debida al programa. Algunas condiciones corrientes que causan a veces desvíos son desbordamientos y subdesbordamientos en punto flotante. En dicha posición fija habrá un salto a un procedimiento de. ya que las comprobaciones necesitan estar una sola vez en unos pocos procedimientos del nivel 1.if asiento = 350 # si el avión está lleno # then begin lleno = 1. El hecho de hacer que el microprograma efectúe la comprobación ahorra tiempo en comparación con el que ocupa la comprobación hecha por el programador. Un fragmento de programa con código y documentación. Un buen ejemplo es el desbordamiento. Si detecta desbordamiento. no ocurrirá ningún desvío. desbordamiento en enteros. Por lo regular. dele un asiento a esta persona # Fig. independientemente de cuántas operaciones aritméticas haya en el programa principal. 5-53. entendiéndose por esto que se conmutará el flujo de control a alguna posición de memoria fija.

son causadas por el programa en forma indirecta.. la interrupción detiene el programa en curso y transfiere control al procedimiento de tratamiento de interrupciones. la CPU se libera para correr otro programa o hacer alguna otra cosa. un programa puede decirle al disco que empiece a transferir información y que produzca una interrupción cuando acabe la transferencia. Ello significa restaurar los registros internos al estado que tenían antes de la interrupción.protecciones. no ocasionados por el programa que se ejecuta. Debe continuar el proceso interrumpido exactamente en el mismo estado en que estaba cuando tuvo lugar la interrupción. Una vez iniciada la operación de E/S. en forma simplificada. desbordamiento de la pila. para apuntar al inicio del buffer y asigna a una segunda variable global cuenta con el número de caracteres que se enviarán. En seguida checa si la terminal está lista y. 6. En seguida. sino por alguna otra cosa normalmente relacionada con la E/S. utilizando registros como los de la figura 5-41). Primero. que realiza alguna acción apropiada. a lo sumo. 4. los desvíos tendrán lugar cada vez. pone un número entero pequeño en las lineas de datos para identificarse a si mismo. Tan pronto como la CPU se encuentra preparada para manejar la interrupción. el software del sistema reúne en un buffer a todos los caracteres que se van a escribir. intento de extraer una palabra con dirección impar y la división entre cero. Al igual que el desvío. Si. A este número se le denomina vector de interrupción. el contador de programa es de 4 bytes. pero las interrupciones pueden variar. conforme al momento exacto en que una persona en una terminal pulsa la tecla de retorno de carro. La interrupción puede ahora comenzar. La CPU quita del bus al vector de interrupción y lo almacena de manera temporal. y las interrupciones. Si el programa se vuelve a ejecutar un millón de veces. Por ejemplo. Para apreciar realmente cómo funciona una interrupción. 5. envía el primer carácter (v. considérese un ejemplo común: una computadora desea enviar una línea de caracteres a una terminal. El controlador del dispositivo activa una línea de interrupción para iniciar la secuencia de interrupción. La diferencia esencial entre los desvíos y las interrupciones es que los desvíos son síncronos con el programa y las interrupciones son asíncronas. el carácter se despliega en la pantalla. La CPU apila el contador de programa y la Palabra de Estado del Programa (PSW) en la pila. el procedimiento de interrupciones retorna el control al programa interrumpido.g. inicializa una variable global apt. por ejemplo. Cuando el controlador del dispositivo ve que su señal de interrupción ha sido recibida. son los siguientes: ACCIONES DE HARDWARE 1. 3. Interrupciones Las interrupciones son cambios en el flujo de control. en su caso. Los pasos. código de operación indefinido. 2. el vector de interrupción n correponde a la dirección 4n. Cuando termina. La razón de que los desvíos sean reproducibles y las interrupciones no lo sean reside en que los desvíos los ocasiona el programa directamente. activa en el bus una señal de interrupción recibida.do el vector de interrupción como índice dentro de una tabla en la parte baja de la memoria. por ejemplo. intento de arrancar un dispositivo de E/S que no existe. la CPU ubica un nuevo contador de programa utilizan. En el transcurso del tiempo. Este 183 .

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

las interrupciones de dispositivos con prioridad mayor. la CPU debe tener también prioridades. para señalar casi catástrofes. una impresora. de 185 . Cuando ésta concluye. alta para los dispositivos muy críticos y baja para los menos decisivos. No obstante. Como se puede ver en la figura 5-54. que en ese momento está corriendo la ISR de la impresora. por lo regular. Considérese un ejemplo simple de interrupciones múltiples. la interrupción se realiza. cualquier intento de interrupción de un dispositivo con menor prioridad se ignora. se inicia la rutina de servicio de interrupción (ISR) de la impresora. con prioridades de 2. un mejor enfoque en el diseño es el de asignar una prioridad a cada dispositivo. todas las rutinas de servicio han finalizado y el programa de usuario continúa en el punto en el que se le dejó. deben ejecutarse sin demora. su prioridad (4) es menor que la de la rutina actualmente en ejecución (5). ejecutando la rutina de servicio de interrupción de la impresora. aún antes de poder ejecutar una sola instrucción. el disco termina y requiere de servicio. Una computadora tiene tres dispositivos de E / S. la mejor manera de mantener correcta la administración es asegurarse de que todas las interrupciones sean transparentes. tales como errores de paridad de memoria. por lo general determinadas por un campo en la PSW. se coloca en la pila y se inicia la ISR de la línea RS 232. la rutina de la impresora puede continuar. respectivamente. Tan pronto como la CPU cambia a la prioridad 2. ocurre una interrupción de la impresora. cuando de repente. Cuando un dispositivo de E/S envía una interrupción. termina la rutina de las líneas RS 232 y regresa al estado en que se encontraba antes de generar la interrupción. de modo que el hardware de la CPU no acepta la interrupción y la mantiene pendiente. es decir. Todas las pastillas de Intel tienen dos niveles (prioridades) de interrupción. En t = 15. debe correr también con prioridad n. Ya que la linea RS 232 tiene una prioridad mas alta (5) que la de la impresora (2). Estas últimas se usan. se encuentra en ejecución un programa de usuario. Poco después. diferibles y no diferibles. se permite entonces la interrupción del disco con prioridad 4 y se ejecuta la ISR del disco.Cuando una computadora tiene dispositivos de E/S con tiempos críticos. Por último. El tipo diferible es el que utilizan todos los dispositivos de E/S. En forma similar. El estado de la maquina. Cuando un dispositivo con prioridad n interrumpe la rutina de interrupción. en t = 20. hasta que la rutina termina y la CPU vuelve a correr un programa de usuario (prioridad 0). en 1 = 10. con la prioridad 2. 4 y 5. Teniendo sujetas a interrupción a las propias rutinas de interrupción. la CPU usa el vector. en t = 40. Cuando se está ejecutando una rutina de prioridad n. Por otra parte. En t = 25. Al principio (t = 0). un disco y una línea RS 232. la línea RS 232 requiere de atención y genera otra interrupción.

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

CONCLUSIÓN 187 .

BOLILLA III: ARQUITECTURA DEL PROCESADOR 188 .

...................................................................................................................................................................................................15 Memoria:(Memoria Central).........15 Núcleo de la computadora: ...................................................12 LA COMPUTADORA......................................19 Manejo de interrupciones:..............................................................................................................................................................................................................21 TIPOS DE CANALES:..................................................................................................................22 SISTEMA OPERATIVO..18 Arbitraje del bus:............15 Unidad aritmético-lógica:.................14 Al software se lo clasifica en dos grupos: ........................................26 INDICE...............................35 Compuertas............................................................................................................................................................................................................................................................................................13 Computadora y Circuitos:................................................................................................................................................................................................................................21 Multiplexor: ........................................................................................................................................................................25 BOLILLA II (Parte 1): EL NIVEL DE LOGICA DIGITAL.............................................................................................................................................................................................................................................35 COMPUERTAS Y ALGEBRA BOOLEANA........................................................................................................................................................................................................................................................................................................................................................................1 BOLILLA I: LA COMPUTADORA......................................................................13 CONCEPTO:.........................................................................................................................................................................................................................................................................................................................................................................................................................................................22 Spoll: ................14 Software: ...........................................................................................................................................................................................................................................................37 189 ........................................................23 ¿QUÉ ES UN SISTEMA OPERATIVO?............................27 INTRODUCCIÓN...........................20 TECNOLOGÍA DE CANALES:.......................................................24 CONCLUSIÓN............................................................................................................................................22 Multipexor por bloques: ...................................................................................................................15 Arquitectura ....................................Componentes Básicos:...............15 Unidad de Control:.........................................................................................15 Periféricos: ......................20 Canales de e/s...........................................................................21 Selector.................................................23 Introducción: ................................................4 INDICE..19 Solicitud del Bus..............14 Hardware:...................................................................................................................................................................14 HARDWARE Y SOFTWARE: ..................................13 FUNCIONES Y ACCIONES:..................................................................................................................................................................................................5 INTRODUCCIÓN..............19 Dispositivos de E/S...................................INDICE INDICE GENERAL.....................................................................................................16 Buses síncronos y asíncronos: ..........................................................................34 EL NIVEL DE LOGICA DIGITAL.................................................................................35 Algebra booleana.........................15 BUSES DE COMPUTADORAS:..............................................................................13 Para qué sirve una computadora?:........................................................19 Ejemplo de encadenamiento margarita:.................................................................................................................

....................................92 Unidades aritméticas y lógicas y registros de corrimiento .........................................................................................................................................90 Buses ......................................................................................53 Registros de corrimiento........................................................................................................................................................................................................................96 La ruta de datos .....................................................................................................................................................................................................38 Equivalencia entre circuitos................................103 190 .............................................80 INDICE...............................................................................59 Flip-flops y registros....93 Memoria principal ................................................................................................................................................................................................................................88 EL NIVEL DE MICROPROGRAMACIÓN .................................................Implementación de funciones booleanas .......................................................68 Buses síncronos ................................................................................................................................................53 Sumadores ..................................................................................................................................................................................47 Decodificadores ..................................................................................................................................................................................................................................................66 Microprocesadores .................................................................40 CIRCUITOS DIGITALES BÁSICOS...............................................................................................94 Encapsulado de los componentes ................................................................................................................................................................90 Registros .....................................................57 Bieslables SR sincronizados.....................................................................................................................................................................70 BUSES ASINCRONOS.............................................................................................100 Secuenciamiento de las microinstrucciones ...............................................................................................................................77 CONCLUSIÓN.55 Relojes ......................54 Unidades aritméticas y lógicas.......47 Multiplexores .......................................................................................................................................................................................90 Multiplexores y decodificadores ......................................................................................................................................................................................................................................................................................................49 Comparadores ................73 Arbitraje del bus ..............................................................102 UNA MACROARQUITECTURA TIPICA ............................92 Relojes ....................................................................79 BOLILLA II (Parte 2): EL NIVEL DE MICROPROGRAMACIÓN.............................................................................................64 MICROPROCESADORES y BUSES.........................89 REPASO SOBRE EL NIVEL DE LÓGICA DIGITAL .................................................................................................................51 Circuitos aritméticos..............................................66 Buses de computadora.............................................................................95 UNA MICROARQUITECTURA TIPICA .....................................................................................................................................57 Biestables...................................................................59 Biestables D sincronizados..........................................................61 Propiedades de las memorias....................................................................................................................................................59 Registros................................................60 Organización de las memorias....81 INTRODUCCIÓN.....................................................................51 Arreglos (matrices) lógicos programables .....................................................................................................98 Cronología de las microinstrucciones .44 Circuitos combinacionales .................................................................55 MEMORIA.........................................................................................................................96 Microinstrucciones ...........................................................................................44 Circuitos integrados ...........................................................................................74 Manejo de interrupciones ...............................................................................................................................................................................

...............................................................................................................................................................144 FORMATOS DE INSTRUCCIÓN...................................................................................................Pilas ..168 Flujo De Control .............155 Evaluación de fórmulas en la notación polaca inversa..................................................173 Procedimientos .......................................................................................................................................................................................................................................................150 Direccionamiento de registros..................................................................................................................................................................150 Direccionamiento directo..................................................................157 Algoritmo..................................................................129 CONCLUSIÓN...................110 El ejemplo de microprograma ....................160 Instrucciones de movimiento de datos .................160 Tipos de Instrucciones ..................................................................................................................................................................................................................................153 Notación polaca inversa...............................................110 El lenguaje micro ensamblador .115 Microprogramación horizontal frente a microprogramación vertical......173 Flujo de control secuencial y saltos .............................................................................................................................123 Memoria caché .157 Algoritmo........166 Control de iteraciones ....................161 Operaciones unarias ...........................................................................................................................................................................................................................................................................................................................................................................................................113 Perspectivas .........................................................................................................................................................................................135 INDICE.................143 EL NIVEL DE MÁQUINA CONVENCIONAL.......147 Ejemplos de formatos de instrucciones.............152 Direccionamiento por medio de pilas.........135 BOLILLA II (Parte 3): EL NIVEL DE MAQUINA CONVENCIONAL.162 Comparaciones y Saltos Condicionales..............................157 Ejemplos de direccionamiento.134 .....................................................................................................................................................................................................................................122 Mejora del rendimiento ..........................................145 Criterios de diseño de formatos de instrucción........103 El juego de macroinstrucciones ........................111 Observaciones sobre el microprograma ................................144 EJEMPLOS DEL NIVEL DE MAQUINA CONVENCIONAL....................................................................149 Direccionamiento.............................107 MICROPROGRAMACIÓN: UN EJEMPLO ........................................................................................................................................................................................................................................................................................................................136 INTRODUCCIÓN...........149 Direccionamiento inmediato.......................................................................151 Indexación.............................................................................................................................................................................................................................................................................................................................................................................................................................................151 Direccionamiento indirecto...................................................149 La PDP-11...............................................................................................................................................................................167 Entrada / salida ........114 EL DISEÑO DEL NIVEL DE MICROPROGRAMACIÓN ...................................115 Nanoprogramación ...........................................................................................................................................................................................................................................................................................................................................................................................................................174 191 ...............................160 Direccionamiento en la PDP-11.........................................................................................................................................................................................................................................................................................164 Instrucciones de llamada a procedimiento ..................................146 Códigos de operación con extensión....161 Operaciones binarias .........................

.....................204 LA UNIDAD DE CONTROL................................197 ESTRUCTURA GENERAL.................................182 Interrupciones .........................................................................238 MODOS DE DIRECCIONAMIENTO ...........................................................................................................................210 LAS UNIDADES PERIFÉRICAS ..........................................188 INDICE........................................................................................211 INTERRUPCIONES .................214 BOLILLA IV: MEMORIA....................................................226 CÓDIGOS CORRECTORES DE ERRORES ...................207 FASE DE BÚSQUEDA O ALMACENAMIENTO DEL OPERANDO ...................................................................................................................................................................................................................................................Corrutinas .............................................................................................................................................................................229 Estructura de una RAM semiconductora .................................................................................................................................................................209 INSTRUCCIÓN DE RUPTURA DE SECUENCIA ..........................224 DIRECCIONES DE MEMORIA ..........................................................................................................................189 INTRODUCCIÓN...............................................................................................211 CONCLUSIÓN.................................................................................................................................................................216 INTRODUCCIÓN....................................196 ARQUITECTURA DEL PROCESADOR......................................................................................................................200 EJECUCIÓN DE LAS INSTRUCCIONES .........................................................236 Memorias asociativas .................................................................................................202 LA UNIDAD ARITMÉTICA Y LÓGICA ......................................................233 Memorias pasivas.......................................................225 ORDENAMIENTO DE BYTES ...215 INDICE.....227 CLASIFICACIÓN Y ORGANIZACIÓN DE LAS MEMORIAS ...............239 Modo de direccionamiento directo ...................................................................................209 EL CANAL............................................................................................................197 Microprocesadores.......................................................................................................................229 Memorias de acceso aleatorio (RAM = Ramdom Acess Memory) ...............................206 FASE DE BÚSQUEDA DE LA INSTRUCCIÓN ....................................................................................................................................184 CONCLUSIÓN....197 DESCRIPCIÓN DE LOS COMPONENTES DE UN PROCESADOR ...............227 PARáMETROS y CARACTERíSTICAS MáS IMPORTANTES DE UNA MEMORIA 228 Capacidad..........................208 FASE DE PREPARACIÓN DE LA SIGUIENTE INSTRUCCIÓN ..................................................................................................... seguido de procesamiento: ........................................................................................183 ACCIONES DE SOFTWARE .............................................................................................223 MEMoRia .......................................................................................................................................207 Caso de búsqueda del operando......................................................................................235 Memorias de acceso serie ........................................187 BOLILLA III: ARQUITECTURA DEL PROCESADOR......................................................................................................................228 Formas de acceder a las posiciones de memoria .......................179 Desvios .........................................................................................................239 192 ......................................................................................................................................................................................................................................................................................................................................201 ORGANIZACIÓN DE LA CPU ..................................................207 Caso de almacenamiento del operando: .......................................231 Pastillas de memoria en paralelo ...........................................................................183 ACCIONES DE HARDWARE ........................................................................................................................

.....................................243 Otros modos de direccionamiento ......................................................................................246 INDICE.....274 Estructura de un módulo objeto ..................................................................................................................................................................................................296 Ratones Estacionarios.......................... .....................................................................................................293 Cuidados y advertencias......................... llamada y expansión de una macro ......266 La tabla de símbolos ......................................................246 BOLILLA V: EL NIVEL DEL LENGUAJE ENSAMBLADOR.256 ¿Qué es un lenguaje ensamblador? ........................................................................245 ......................................244 CONCLUSIÓN....................................................................261 La primera pasada ...............................272 Tareas realizadas por el programa ensamblador ..............................................................................................276 Tiempo de ligadura y reubicación dinámica ............................................................................................................................................................294 MOUSE (RATON) ....267 MACrOS ...........................................292 RESEÑA HISTÓRICA...............282 BOLILLA VI (Parte 1): PERIFÉRICOS........242 Modo de direccionamiento por registro indirecto ...................................279 CONCLUSIÓN......................................................................................................240 Modo de direccionamiento indexado .....................................................................................................................................................255 INTRODUCCIÓN AL LENGUAJE ENSAMBLADOR ................................................................................................................................................................................295 Tipos de ratones..............................................271 MONTAJE (LINKING) y CARGA ........................................296 PANTALLAS TÁCTILES: ...............................254 EL NIVEL DEL LENGUAJE ENSAMBLADOR............................257 Comparación entre el.....................................................................................................................................................................................................................................................................................259 EL PROCESO DE ENSAMBLAJE .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................296 193 ...........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................262 La segunda pasada ........................................293 TECLADO: ............................................................................................ lenguaje ensamblador y los lenguajes de alto nivel ..................................271 Implementación de macros en un ensamblador ............................................................................................................................................................269 Macros con parámetros .........258 Afinación de programas ...................Modo de direccionamiento indirecto .....................................................................................................240 Modo de direccionamiento relativo .............................................292 INTRODUCCIóN ...............................................................................292 PERlFERICOS DE ENTRADA: .................................................................................................................291 PERIFÉRICOS...........................................................................284 INTRODUCCIÓN.............................283 INDICE...............261 Ensambladores de dos pasadas .....................................269 Definición......................................................296 Ratones Inalámbricos........................256 Formato de una sentencia en lenguaje ensamblador ...............................277 Enlace dinámico ...........................................................................................................247 INTRODUCCIÓN................................................................................

.......................................................................................................................................................................................................................................................................................................................................................................................307 Aspectos técnicos.............................................................................................................................................................................................................................297 TABLETA DIGITALIZADORA.306 Impresoras térmicas: .............300 Facilidad de manejo y almacenamiento..............297 Calibración...........303 El disco por dentro: ..................................................................................................................................................................301 Cintas magneticas: ....................304 PANTALLAS DE SISTEMAINFORMATICO (Monitor): ............................305 Impresoras de agujas: ..302 DVD:..305 Impresora de Bola: ............................................303 PERIFERICOS DE SALIDA: .............................................................................................................................................................................................................................................................................................................................300 2........................................................................306 Impresoras sin cinta entintadas: ..................306 Impresoras Láser de color: .......297 Escáner de mano: .....303 El futuro del DVD: .........296 ESCANER .........................................................................................................................................................................................................................................................300 1.....310 194 ................................................................................................299 Discos flexibles.............................................................................BOLAS GIRATORIAS: ...........................................................304 Impresoras.............................................298 LAPIZ OPTICO: ..........297 Ventaja: ............................................................................................................................................................................306 Impresoras láser: .......... Disco flexible de 5 1/4 pulgadas ................................................................................. .......298 LECTORES DE TARJETAS MAGNETICAS..........299 Fiabilidad del soporte............................................................................................................................................306 PERIFERICOS DE COMUNICACION................................................................................ Disco flexible de 3 1/2pulgadas .........................................297 Desventajas: .......................................................................................305 Impresoras con cinta entintada: ........................................................... ...............................309 BOLILLA VI (PARTE 2): TÉCNICAS Y DISPOSITIVOS DE ENTRADA SALIDA.....................................299 Discos........................................................................................................................................................................................................306 Impresoras de inyección de tinta: ..............302 Prestaciones del DVD: ..............................307 CONCLUSIóN.............................................................................................................307 Como usar la Tecnología 56K ...........308 CONCLUSIÓN.............................................................................................................................................................................................................. .....................................297 Escáner de Rodillo:............................................................................................................................................................297 Ventajas: ......................................................................................................296 Profundidad de color............................................................................................................................................................................300 Discos opticos: ...........................................................................................................................................................296 Tipos de escáner:......................................................................................297 Escáner de Sobremesa: ........................................................................................................297 Desventajas: ..............................................................................................................................................................................................................................................................................300 Disco duro.................................................................................................298 PERIFERICOS DE ALMACENAMIENTO: ...................................................................................303 La compresión MPEG-2: .........................................................................................................307 MODEM...........................297 LECTORES DE CODIGO DE BARRA.............

........................334 Otros periféricos..................................................................................................................340 CONCLUSIÓN....................311 INTRODUCCIÓN.....336 Interrupciones (interrupts) .338 Transferencia DMA ....................................332 Procesos de comunicación para la transmisión de datos a distancia..................323 Impresoras.............................................................................................................................323 Plotter.INDICE............................................................................................339 GLOSARIO...............................................................................................................................................................................................................................................319 Dispositivos de soporte magnético...................................................................330 La pantalla.............................................................................335 Polling (interrogatorio de tráfico) .......................319 Dispositivos de fichas y de banda perforada.....................................................................................................................................................................................................................................334 Técnicas de entrada/salida (input/output)..........................................................................................344 195 .............................................331 Terminales.........................................................................318 TECNICAS Y DISPOSITIVOS DE ENTRADA / SALIDA (Input / Ouput)..........................................342 CONCLUSIÓN FINAL.............................................................................................................................................................................................................343 BIBLIOGRAFÍA ..................................................................................................................................................................................................................................................................................................................................................................................

INTRODUCCIÓN 196 .

DESCRIPCIÓN DE LOS COMPONENTES DE UN PROCESADOR En una visión muy general un ordenador lo podemos asimilar a la siguiente situación. Por otro lado. Marcelo Martinez 2003 ARQUITECTURA DEL PROCESADOR ESTRUCTURA GENERAL Una computadora digital es un sistema de procesadores. también tiene a cada lado un canasto. Esto se puede apreciar en la siguiente figura (Figura 1). el de su derecha es donde se le introducen datos.APUNTES DE CATEDRA CARRERA: Cátedra: Profesor: AÑO: LICENCIATURA EN ANALISIS DE SISTEMAS – INGENIERIA EN SISTEMAS Procesamiento De Datos I Lic. memorias y dispositivos de entrada / salida son conceptos claves por lo que iniciaremos el estudio de la arquitectura del procesador analizando cada uno de ellos. Supongamos una oficina donde tenemos un "Señor" sentado frente a un escritorio en donde tiene una calculadora una cierta cantidad de papeles en blanco donde escribir datos y un contador que le indica el número de la casilla que deberá leer a continuación. en la pared hay un reloj donde se le indica el tiempo que tiene para resolver cada instrucción. memorias y dispositivos de entrada / salida interconectados. 197 . Procesadores. requerimientos ó instrucciones y el de su izquierda es donde el entrega datos o respuestas a los requerimientos. A su espalda tiene una serie de casilleros numerados en donde puede guardar o sacar información y un lugar preciso tiene una determinada cantidad de tarjetas en donde están escritas instrucciones. Veremos aquí estos componentes y su interconexión. Además.

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

extrae de la memoria. Una es la llamada "Unidad de Control". sobre datos registrados en la memoria central y almacenar los resultados en la memoria central a medida que son obtenidos. Una vez que ha decodificado (interpretado) el tipo de operación a realizar. impresoras. que tienen correspondencia con las dos clases de información almacenadas. busca los operandos y los copia en los registros internos de la "Unidad Aritmética y Lógica" (ALU) para que esta realice la operación indicada en el "Código de Operación". este es el papel reservado a las Unidades Periféricas. etc. en la dirección indicada por el Contador de Programa. indica donde ir a buscar los operandos y donde guardar el resultado respectivamente. con los cuales la máquina efectuará los tratamientos indicados por las instrucciones. es la "Unidad Aritmética y Lógica". etc). por un lado las tarjetas con ordenes acomodadas secuencialmente ("Instrucciones de un programa") y por otro lado los datos. tenemos dos unidades muy importantes de la máquina. Ahora es necesaria dotarla de medios para comunicarse con el exterior. y las "Memorias Auxiliares" ó "Unidades de 199 . etc. y las direcciones de los operandos y del resultado. u operaciones lógicas tales como comparar. o también llamada "Unidad de Instrucciones'" para las instrucciones del programa. restar. la que realiza operaciones aritméticas sobre los datos. unidades de visualización de rayos catódicos. el que tiene el siguiente formato: En donde el "CÓDIGO DE OPERACIÓN" indica que tipo de operación deberá realizar. Tal como se ha indicado hasta aquí. que permiten el dialogo con el exterior. y la segunda. La Unidad de Control.. Existen dos grandes clases de unidades periféricas: "Las Unidades de Comunicación" (lectoras de tarjetas. La figura 2 muestra esquemáticamente como pueden resumirse las principales funciones de la CPU.Entrada / Salida (los canastos a ambos lados). o analizar si el contenido de los datos son verdaderos o falsos de acuerdo a la instrucción. que contiene el "Contador de Programa" y el "Registro de Instrucción". Dentro de la Unidad Central de Proceso (CPU). teclados. tales como sumar. la nueva instrucción a ejecutar y la copia en el Registro de 'Instrucción. El reloj sobre la pared sirve como elemento de sincronización entre todas las partes del sistema. En el casillero (memoria) podemos encontrar dos clases de información. a menudo llamados operandos. la máquina puede ejecutar un programa inicialmente registrado en la memoria central.

Figura 3 MICROPROCESADORES En la Figura 4 se puede apreciar la organización de una microcomputadora con un solo bus o canal. La Unidad Central de Procesamiento (CPU) es el "cerebro" de la computadora. se ocupan de gobernar los canales o buses. En resumen podemos representar un ordenador como un conjunto ensamblado de diferentes unidades. cuyo funcionamiento está regido por un programa registrado en la memoria principal. Estas "Unidades de Transferencia de Información". al igual que si se debiera efectuar una comparación lógica y tomar una decisión. es la Unidad Aritmética y Lógica quien lo realiza. Si es una transferencia de información con el exterior. Si la operación es un cálculo. Estas Unidades Periféricas se conectan a la memoria central directamente a través de unidades especializadas en la gestión de transferencia de información. Disquetes. etc). se cede el control aun canal. 200 . cintas magnéticas. Su función es ejecutar programas almacenados en la memoria central tomando las instrucciones examinándolas y luego ejecutándolas una a continuación de otra. La Unidad de Control gobierna la ejecución de las operaciones pedidas por el programa. cuyas capacidades de almacenamiento son muy superiores a las de una memoria principal.Almacenamiento Secundario" (discos magnéticos.

La CPU se compone de varias partes.. y los carga en los registros internos de la CPU. pero su uso es muy difundido.Vuelve al punto 1 para empezar: la ejecución de la instrucción siguiente. 6. la mayoría de las computadoras tienen otros registros. necesarias para llevar a cabo las instrucciones. 5. 4. Esta descripción de como funciona la CPU se parece mucho a un programa.Ejecuta la instrucción. un dispositivo compuesto de elementos electrónicos. Otro registro muy importante es el "Registro de Instrucción". El nombre de "Contador de Programa" a veces confunde ya que no cuenta nada. algunos de los cuales son accesibles a los programadores.Almacena los resultados en el lugar apropiado.Verifica si la instrucción requiere datos de la memoria y. 2.Cambia el Contador de Programa de modo que señale la siguiente instrucción. determina donde están situados. Esta memoria consta de varios registros. No obstante.Extrae de la memoria la siguiente instrucción y la lleva al registro de instrucción. A esta secuencia de pasos se la denomina ciclo de máquina y es la forma básica de operación de toda computadora. 3. sino que puede utilizarse otro programa 201 . El registro más importante es el "Contador de Programa" (PC = Program Counter). El hecho de que sea posible escribir un programa que imite el funcionamiento de la CPU demuestra que no es necesario que un programa sea ejecutado por una CPU "física.Extrae los datos. La Unidad de Control. si es así.. que indica la dirección de la próxima instrucción que debe ejecutarse. 8.Determina el tipo de instrucción que acaba de extraer. 7. La CPU también contiene una pequeña memoria de alta velocidad utilizada para almacenar los resultados intermedios y cierta información de control. cada uno de los cuales tiene cierta función. si los hay. se encarga de traer las instrucciones de la memoria principal y determinar su tipo. La Unidad Aritmética y Lógica que realiza operaciones como la suma o la función booleana ANO. que contiene la instrucción que se está ejecutando. EJECUCIÓN DE LAS INSTRUCCIONES En la CPU se ejecutan instrucciones en una serie de pequeños pasos: 1. es decir.

202 . etc. el equipo de diseño puede decidir si quiere construir un procesador físico para ejecutar programas en "L" o si prefiere escribir un intérprete en su lugar que realice la misma función. y consiste en los registros (normalmente de 1 a 16) y en la ALU (Unidad AritméticaLógica). los programas en computadoras modernas. a menudo. Pascal. Un conjunto de instrucciones grandes indica. El conjunto de todas las instrucciones que tiene a su disposición un programador en un nivel se denomina "conjunto de instrucciones". ORGANIZACIÓN DE LA CPU La organización interna de una parte clásica de la CPU se debe al diseño de "Von Neumann". Después de haber especificado un lenguaje de máquina "L" para una determinada computadora. menos cara de lo que costaría un procesador de hardware para la máquina. Un programa que rea liza esto se llama II intérprete". Esta equivalencia entre el intérprete y los procesadores físicos es muy importante en la organización de las computadoras. Por ejemplo. Dichos registros alimentan dos entradas a la ALU (A y B en la figura). Un conjunto de instrucciones grandes no tiene por que ser mejor que uno pequeño. el conjunto suele tener de 20 a 300 instrucciones. A las máquinas con conjuntos de instrucciones muy reducidos se las denomina "RISC" (Reduced Instruction Set Computer). Los compiladores para alto nivel como Ada. la máquina en la que funciona puede ser mucho más simple y por lo tanto.que extraiga. Este tipo de máquinas no utiliza microprogramación y son muy rápidas. A las máquinas con conjuntos de instrucciones normales o extendidos se las llama "CISC"(Completed Instruction Set Computer). examine y ejecute las instrucciones. y se muestra en la Figura 5. Dado que un intérprete se divide en pasos pequeños las instrucciones que ejecuta. al nivel de máquina convencional. Por estas razones. De hecho suele ocurrir lo contrario. A esta parte se la denomina la "trayectoria de los datos". se desempeñan mejor en máquinas con conjuntos de instrucciones reducidos y bien definidos. son ejecutados por un intérprete que corre en una máquina mucho más primitiva y al que se llama "nivel de microprogramación". los cuales retienen información mientras la ALU realiza sus cálculos. para el nivel de máquina convencional. La cantidad de instrucciones varía de una máquina a otra y de nivel en nivel. que las instrucciones no son muy generales.

La operación de flujo de datos es el corazón de la mayoría de las CPU y define en gran parte lo que una máquina es capaz de hacer. los lleva a los registros de entrada de la ALU.La Unidad Aritmética y Lógica realiza sumas. • De registro a registro. Una instrucción de memoria a memoria extrae sus operandos de la memoria y lleva estos a los registros de entrada de la ALU. • De memoria a memoria. lleva a cabo alguna operación con ellos y almacena el resultado en otro registro. 203 . Las instrucciones pueden dividirse en tres categorías: • De registro a memoria. donde pueden ser usadas como entradas para la ALU en instrucciones subsecuentes. donde realiza su operación y escribe el resultado en la memoria. el cual a su vez puede ser almacenado en la memoria. colocando el resultado en el registro de salida. restas y otras operaciones sencillas sobre el contenido de los registros de entrada. Las instrucciones de registro a memoria permiten que una palabra de memoria sea extraída a los registros. Una instrucción típica de registro a registro extrae dos operandos de los registros.

después el primer operando. La instrucción de suma necesita cuatro accesos a la memoria central. 204 . La dirección de la célula de memoria donde debe almacenarse el resultado. 3. ejemplo una suma. la instrucción debe facilitarle la siguiente información: La clase de operación a realizar. 2. Esta característica permite intrucciones de una sola dirección: la del segundo operando. que sirve tanto para albergar el primer operando como el resultado. La operación de suma necesita tres instrucciones para: 1. por. que contiene un código y tres direcciones: CÓDIGO DE OPERACIÓN DIRECCIÓN 1° OPERANDO DIRECCIÓN 2° OPERANDO DIRECCIÓN DEL RESULTADO La figura 6 representa la Unidad Aritmética y Lógica capaz de ejecutar esta operación. o primer operando. luego el segundo operando y. en este caso una suma. Este papel lo cumple el código de operación. almacenar el resultado. por último. o segundo operando. la cual está rodeada de tres registros donde de memorizan los dos operandos y el resultado.Sumar el segundo operando con el contenido del acumulador. La dirección de la célula de memoria que contiene el primer dato.LA UNIDAD ARITMÉTICA Y LÓGICA Para pedir al ordenador una operación matemática.Almacenar en memoria el contenido del cacumulador. que permiten sucesivamente buscar la instrucción. denominado acumulador.Cargar el primer operando en el acumulador. La dirección de la célula de memoria que contiene el segundo dato. De aquí se deduce la forma de la instrucción. A las máquinas que utilizan este tipo de instrucción se las llama de tres direcciones. Su Unidad Aritmética y Lógica posee un registro partivular. Existen otras máquinas llamadas de una dirección.

Este es el caso de la computadora conocida como "Abacus".Cada una de setas tres instrucciones comportará un código de operación y una dirección. 205 . R2 de la figura anterior. El segundo operando puede almacenarse durante la operación en el “Registro de Palabra” asociado a la memoria. CÓDIGO DE OPERACIÓN Carga Adición Almacenamiento DIRECCIÓN Dirección 1º operando Dirección 2º operando Dirección resultado La Unidad Aritmética y Lógica está esquematizada en al figura 7. donde el acumulador sustituye a los registros R1.

vamos a ver el Registro de Instrucción de “Abacus”. Unidad Aritmética y Lógica. tales como la Memoria.LA UNIDAD DE CONTROL Es la unidad que extrae y analiza las instrucciones de la memoria central. b) Otra parte que contiene la/s “Dirección/es del/os.). etc. distribuye las ordenes al conjunto de unidades del ordenador. Su nombre se debe a que. etc. 206 . exceptuado las rupturas de secuencia. este registro va aumentando su contenido en una unidad para pasar a la siguiente instrucción. que contiene la última instrucción extraída de la memoria..Búsqueda y procesamiento del operando o bien. salto. Este Registro de Instrucción se divide en dos partes: a) Una parte que está conformada por el “Código de Operación”. Para ello necesita dos registros: 1. 2. que es la arquitectura que estamos analizando y que es la que está más difundida. que define el tipo de instrucción a ejecutar (suma.Un registro llamado “Registro de Instrucción”. La unidad de control contiene además un órgano generador de secuencias llamado “Secuenciador”. a fin de hacerles ejecutar las distintas fases de la instrucción. 2.Uno llamado "Contador de Instrucciones".Búsqueda y análisis de la instrucción. que contiene la dirección de la próxima instrucción a ejecutar. operando/s”. Si bien existen distintos diseños para este registro. el que tras analizar el código de operación. El desarrollo de una instrucción de procesamiento en un computador de una dirección. puede descomponerse en tres fases: 1. multiplicación.Preparación de la siguiente instrucción. "Contador Ordinal" ó “Contador de Programa” (PC = Program Counter). almacenamiento del operando. 3. Esto puede verse en la Figura 8.

207 .FASE DE BÚSQUEDA DE LA INSTRUCCIÓN La Unidad de Control ordena la transferencia del contenido del Contador de Programa (es decir la dirección de la instrucción por ejecutar) al Registro de Selección. la unidad de control sabe que se trata de una instrucción de procesamiento. el operando buscado queda disponible en el Registro de Palabra. La Unidad de Control ordena su transferencia al Registro de Selección de memoria y acto seguido ordena una operación de lectura en la memoria. La dirección del operando se encuentra en la zona de dirección del Registro de Instrucción. la Unidad de control ordena la transferencia del contenido de este registro al Registro de Instrucción. con búsqueda previa del operando. Tal como indica la Figura 9. FASE DE BÚSQUEDA O ALMACENAMIENTO DEL OPERANDO Caso de búsqueda del operando. Obsérvese que un posible procesamiento puede ser simplemente una transferencia del operando al acumulador. Esta primera fase es común a todos los tipos de instrucciones. y envía a la memoria una orden de lectura. Al finalizar dicha operación. Los circuitos especializados de la Unidad de Control pueden entonces analiza el Código de Operación de la instrucción. El resultado del procesamiento del operando queda almacenado en el Acumulador. la instrucción queda disponible en el Registro de Palabra. Una vez terminada esta operación de lectura. Figura 10. La Unidad de Control posiciona los circuitos de la Unidad Aritmética y Lógica para realizar el procesamiento solicitado por el código de operación y ordena la transferencia del operando a la Unidad Aritmética y lógica. seguido de procesamiento: Una vez analizado el código de operación de la instrucción. Entonces.

Caso de almacenamiento del operando: La dirección de almacenamiento del operando se encuentra en la zona de dirección del Registro de Instrucción. Figura 11. El operando a almacenar está en el Acumulador. 208 . Acto seguido completa la ejecución ordenando a la memoria una operación de escritura. La Unidad de Control ordena su transferencia al Registro de Palabra. La Unidad de Control ordena su transferencia al Registro de Selección de la memoria.

en caso de no cumplirse esta condición. normalmente relacionada con el contenido del acumulador. haciendo que la instrucción de salto sea seguida. El Código de Operación define la condición y la Dirección indica el emplazamiento de la próxima instrucción por ejecutar en caso de satisfacerse la condición. el programa continuar en secuencia. de una unidad a este contador. en caso contrario ordena incrementar en uno al Contador de Programa. también llamado instrucción de bifurcado o de salto. sino por una instrucción cuya dirección viene suministrada por la propia instrucción de salto. El salto puede ser condicional. Si la respuesta de la Unidad Aritmética y Lógica es que la condición ha sido satisfecha. o sea que este no tendrá efecto si no se satisface una determinada condición. Esto puede verse en la figura 12. la Unidad de Control ordena la transferencia de la dirección al Contador de Programa e inhibe la suma. no por la instrucción almacenada en la siguiente dirección de memoria. permite modificar el desarrollo secuencial del programa. de manera que contenga la dirección de la siguiente instrucción. 209 .. INSTRUCCIÓN DE RUPTURA DE SECUENCIA Este tipo de instrucción.FASE DE PREPARACIÓN DE LA SIGUIENTE INSTRUCCIÓN Consiste en aumentar una unidad (a menudo se dice incrementar en uno) el contenido del Contador de Programa.

Para inicializar la transferencia. Por cada información transferida. La dirección para el almacenamiento de la primera información. El número de informaciones a transferir.EL CANAL Es un dispositivo que es capaz. En el momento en que toda la información ha sido transferida. advertir a la Unidad de Control a través de un mecanismo llamado “ Interrupción”. tanto en un sentido como en otro. Las informaciones transferidas se almacenan en memoria en forma secuencial. En lo sucesivo el canal se ocupara totalmente de la gestión de la transferencia. en general. Esto de aprecia en la Figura 13. de un conjunto de información entre las Unidades Periféricas y la Memoria Central. La dirección de la Unidad Periférica implicada. 3. 210 . 2. de gestionar la transferencia. sumar uno a la dirección de almacenamiento y restar uno al número de informaciones a transferir. instrucciones especiales de entrada/salida deben suministrar al canal lo siguiente: 1. En los ordenadores actuales esta transferencia puede operarse simultáneamente con el desarrollo de un programa de cálculo.

los errores lógicos (división por cero). d) Las unidades para el intercambio de información a través de dispositivos que aceptan o suministran datos analógicos: tales como modems. como se le comunica ala Unidad de Control que debe realizar o ejecutar una tarea. como por ejemplo la cancelación de un programa. considerado ahora como prioritario. por cuanto no implican un procesamiento o atención inmediata. como pueden ser las máquinas lectoras o perforadoras de cintas o tarjetas perforadoras. Podemos clasificar las interrupciones según el campo de aplicación del procedimiento de interrupción como por ejemplo: 211 . 2. a su vez. lo que permite la reanudación del programa interrumpido. termina en una instrucción que restaura el estado que tenía la máquina al momento de la interrupción. las terminales. etc. etc. La mayoría de las unidades constan de dos partes: 1. El ejemplo anterior del canal es una de las interrupciones enmascarables.Las "Enmascarables": o sea las que pueden ser temporaria. ~ bien para avisarle que algo a sucedido ó finalizado. Existen dos tipos de interrupciones: 1. 2. Terminado este último. Es gracias a las interrupciones. Más exactamente. lee o escribe datos en los dispositivos periféricos. el tratamiento de una interrupción consiste. 2. como por ejemplo cuando el canal le avisa que todos los datos solicitados han sido transferidos a la memoria. las impresoras. tanto de Hardware como de Software. Estas unidades están compuestas por los discos. El programa en curso se ve interrumpido para permitir la ejecución del programa solicitado por la interrupción. disquetes. Entre estas encontramos las interrupciones por errores. INTERRUPCIONES Las " Interrupciones" son ordenes que proceden del exterior y que piden al ordenador ejecutar un programa asociado a la orden.mente ignoradas. se reanuda la ejecución del programa interrumpido.Las unidades de comunicación: que podemos a su vez dividirlas en: a) Comunicación entre el sistema y el medio exterior: que permiten el intercambio de información sobre soportes generados o leídos por el hombre. cintas magnéticas. etc. en general. Este programa. las redes de computadoras.Una unidad electromecánica que. unidades de visualización. gobernada por 1a primera.LAS UNIDADES PERIFÉRICAS Se distinguen dos grandes clases de Unidades Periféricas: 1.Una parte electrónica. llamada “Controlador” o “Unidad de Control de Periféricos”. etc. b) Unidades para el diálogo entre el hombre y el computador: tales como las máquinas de escribir.Las memorias auxiliares: que sirven de soporte de almacenamiento de gran capacidad y de medio de comunicación con el interior del sistema. etc. También tenemos las interrupciones que proceden por ordenes del operador. etc.Las "No Enmascarables": que no pueden ignorarse por cuanto deben set atendidas inmediatamente. etc. c) Las unidades para intercambio de información a distancia: como por ejemplo las líneas de comunicación. teclado y monitores de terminales. conversores analógicos / digitales. otros computadores. en memorizar el estado de la máquina desde el final de la instrucción en curso y forzar seguidamente en el Contador de Programa la dirección de la primera instrucción del programa asociado a la interrupción.

o sea. Interrupción de recuento: para contar impulsos procedentes de un reloj. El programa interrumpido pasa entonces al estado de espera. Varias razones pueden diferir la consideración operativa de la interrupción. Una interrupción puede encontrarse en varios estados a saber: 1. si se encontrasen simultáneamente en estado de espera. Primeramente. varias demandas de interrupciones. presentan varias características del tipo siguiente de organización modular: • Las interrupciones están agrupadas en cierto número de niveles jerárquicos. Interrupción externa: utilizada para avisar a la máquina acerca de cualquier modificación interesante del medio exterior. Determinados computadores presentan una sola posibilidad de interrupción. A cada nivel de interrupción le corresponde un conductor proveniente de la causa o causas de la interrupción y también de los programas asociados. etc. Un nivel puede ser activado o desactivado por el programa. también se suele decir que el nivel ha sido enmascarado. especialmente en control de procesos industriales. poseen frecuentemente sistemas de interrupción bastante elaborados. desbordamiento de capacidad. cada uno de ellos posee una prioridad diferente. Interrupción por causa del programa (o desvío): instrucción o dirección incorrecta. si se han satisfecho las siguientes condiciones: a- No existe ningún nivel de prioridad superior en el estado autorizado de espera. de tal manera que la interrupción ha podido ser memorizada pero no tomada en cuenta por el ordenador. etc. • Un subnivel agrupa. especializados en la guía de procesos. En general. es preferido que el nivel esté autorizado. Otros poseen varios niveles de interrupciones. operaciones imposibles. error de paridad en memoria. Los programas asociados a los subniveles de un mismo nivel no pueden interrumpirse mutuamente. 212 . Interrupción por entrada / salida: generada por el canal para avisar del fin de una operación de entrada / salida ó de una anomalía ocurrida en el transcurso de una operación de entrada / salida. Dichos niveles pueden estar jerarquizados.12345- Interrupción por errores o averías: falla de la alimentación eléctrica. cuyas causas son investigadas por prueba de los indicadores. a su vez. división por cero. Un programa de un determinado nivel de prioridad puede verse interrumpido por un programa solicitado por una interrupción de nivel superior. lo que significa que están clasificados por orden de las prioridades respectivas. siendo únicamente efectiva su prioridad en caso de elección entre varios de ellos. 2. Los pequeños ordenadores. y que un programa de interrupción puede a su vez ser interrumpido por una demanda de interrupción clasificada en un nivel superior de prioridad. puesto que se distinguen dos formas de estado de espera: • Estado de espera inhibido: el nivel ha resultado inhibido por programa. • Un nivel agrupa varios subniveles. • Estado de espera autorizado: la interrupción puede ser tomada en cuenta por el ordenador. cada cual con su conductor de interrupción y su prioridad dentro del nivel. en cuyo caso se pasarían todas las causas de interrupción a través de una compuerta lógica "OR".Estado desactivado: el nivel no acepta ninguna demanda de interrupción. y el programa de interrupción comienza a comprobar un conjunto de indicadores a fin de detectar cuál es la causa de la misma.Estado de espera: el nivel pasa al estado de espera si recibe una señal de demanda de interrupción.

b-

La unidad central se encuentra en una fase ininte- rrumpible (generalmente
en final de instrucción).

2- Estado activo: implica que la unidad central tome en cuenta la interrupción y se
mantiene durante toda la ejecución del programa de interrupción.
A cada nivel de interrupción se asocian dos señales: una impulsiva. procedente del
exterior, para pedir la interrupción, y otra de larga duración que el calculador deja activada
hasta tanto no se haya tratado la interrupción, es decir, hasta que el nivel sea capaz de
aceptar una nueva demanda de interrupción.
A cada nivel de interrupción se asocia un conjunto de posiciones de memoria,
divididas en dos partes: la primera contiene toda la información necesaria para el arranque
del programa de interrupción (en especial la dirección de la primera instrucción). La
segunda sirve para almacenar la información que caracterizan al estado del programa en el
instante de la interrupción, para su posterior reanudación (estado de los diferentes
indicadores. Contador de Programa, enventualmente los registros de base. etc).
El paso de una interrupción al estado activo consiste en memorizar el estado del
programa, almacenando la información pertinente en las posiciones asociadas de memoria
para instaurar después un nuevo estado del programa.
La última instrucción de un programa de interrupción es una muy especial, cuya
finalidad es la de restaurar el estado del programa en el momento de la interrupción,
rescatando las posiciones asociadas de memoria. Además desactiva el nivel de interrupción,
lo que permite responder a otra posible señal de interrupción.

213

CONCLUSIÓN

214

BOLILLA IV: MEMORIA

215

INDICE
INDICE GENERAL............................................................................................1
BOLILLA I: LA COMPUTADORA..............................................................................................4
INDICE.......................................................................................................................................5
INTRODUCCIÓN...................................................................................................................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 Básicos:...................................................................................15
Unidad de Control:.............................................................................................................15
Unidad aritmético-lógica:..................................................................................................15
Memoria:(Memoria Central)..............................................................................................15
Periféricos: ........................................................................................................................15
Núcleo de la computadora: ...............................................................................................15
BUSES DE COMPUTADORAS:.........................................................................................16
Buses síncronos y asíncronos: ..............................................................................................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
TECNOLOGÍA DE CANALES:.......................................................................................21
TIPOS DE CANALES:.....................................................................................................21
Multiplexor: ..................................................................................................................21
Selector..........................................................................................................................22
Multipexor por bloques: ................................................................................................22
Spoll: .........................................................................................................................22
SISTEMA OPERATIVO.......................................................................................................23
Introducción: ....................................................................................................................23
¿QUÉ ES UN SISTEMA OPERATIVO?.........................................................................24
CONCLUSIÓN........................................................................................................................25
BOLILLA II (Parte 1): EL NIVEL DE LOGICA DIGITAL.....................................................26
INDICE.....................................................................................................................................27
INTRODUCCIÓN...................................................................................................................34
EL NIVEL DE LOGICA DIGITAL......................................................................................35
COMPUERTAS Y ALGEBRA BOOLEANA......................................................................35
Compuertas........................................................................................................................35
216

Algebra booleana...............................................................................................................37
Implementación de funciones booleanas ..........................................................................38
Equivalencia entre circuitos...............................................................................................40
CIRCUITOS DIGITALES BÁSICOS..................................................................................44
Circuitos integrados ..........................................................................................................44
Circuitos combinacionales ................................................................................................47
Multiplexores ................................................................................................................47
Decodificadores ............................................................................................................49
Comparadores ...............................................................................................................51
Arreglos (matrices) lógicos programables ....................................................................51
Circuitos aritméticos..........................................................................................................53
Registros de corrimiento................................................................................................53
Sumadores .....................................................................................................................54
Unidades aritméticas y lógicas......................................................................................55
Relojes ..............................................................................................................................55
MEMORIA............................................................................................................................57
Biestables...........................................................................................................................57
Bieslables SR sincronizados..........................................................................................59
Biestables D sincronizados............................................................................................59
Flip-flops y registros..........................................................................................................59
Registros........................................................................................................................60
Organización de las memorias...........................................................................................61
Propiedades de las memorias.............................................................................................64
MICROPROCESADORES y BUSES...................................................................................66
Microprocesadores ............................................................................................................66
Buses de computadora.......................................................................................................68
Buses síncronos .................................................................................................................70
BUSES ASINCRONOS....................................................................................................73
Arbitraje del bus ................................................................................................................74
Manejo de interrupciones ..................................................................................................77
CONCLUSIÓN........................................................................................................................79
BOLILLA II (Parte 2): EL NIVEL DE MICROPROGRAMACIÓN.......................................80
INDICE.....................................................................................................................................81
INTRODUCCIÓN...................................................................................................................88
EL NIVEL DE MICROPROGRAMACIÓN .......................................................................89
REPASO SOBRE EL NIVEL DE LÓGICA DIGITAL .......................................................90
Registros ..........................................................................................................................90
Buses .................................................................................................................................90
Multiplexores y decodificadores .......................................................................................92
Unidades aritméticas y lógicas 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
Cronología de las microinstrucciones .............................................................................100
Secuenciamiento de las microinstrucciones ...................................................................102

217

UNA MACROARQUITECTURA TIPICA .......................................................................103
Pilas .................................................................................................................................103
El juego de macroinstrucciones ......................................................................................107
MICROPROGRAMACIÓN: UN EJEMPLO ....................................................................110
El lenguaje micro ensamblador .......................................................................................110
El ejemplo de microprograma .........................................................................................111
Observaciones sobre el microprograma ..........................................................................113
Perspectivas ....................................................................................................................114
EL DISEÑO DEL NIVEL DE MICROPROGRAMACIÓN ............................................115
Microprogramación horizontal frente a microprogramación vertical..............................115
Nanoprogramación ..........................................................................................................122
Mejora del rendimiento ...................................................................................................123
Memoria caché ...............................................................................................................129
CONCLUSIÓN......................................................................................................................134
................................................................................................................................................135
BOLILLA II (Parte 3): EL NIVEL DE MAQUINA CONVENCIONAL................................135
INDICE...................................................................................................................................136
INTRODUCCIÓN.................................................................................................................143
EL NIVEL DE MÁQUINA CONVENCIONAL.................................................................144
EJEMPLOS DEL NIVEL DE MAQUINA CONVENCIONAL........................................144
FORMATOS DE INSTRUCCIÓN.....................................................................................145
Criterios de diseño de formatos de instrucción................................................................146
Códigos de operación con extensión...............................................................................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
Indexación....................................................................................................................152
Direccionamiento por medio de pilas..........................................................................153
Notación polaca inversa...........................................................................................155
Evaluación de fórmulas en la notación polaca inversa............................................157
Algoritmo.............................................................................................................157
Algoritmo.............................................................................................................157
Ejemplos de direccionamiento.....................................................................................160
Direccionamiento en la PDP-11..............................................................................160
Tipos de Instrucciones ........................................................................................................160
Instrucciones de movimiento de datos ............................................................................161
Operaciones binarias .......................................................................................................161
Operaciones unarias ........................................................................................................162
Comparaciones y Saltos Condicionales...........................................................................164
Instrucciones de llamada a procedimiento ......................................................................166
Control de iteraciones .....................................................................................................167
Entrada / salida ................................................................................................................168
Flujo De Control .................................................................................................................173
Flujo de control secuencial y saltos ................................................................................173
218

..................................................................................................174 Corrutinas .......................................................................................216 INTRODUCCIÓN..................................207 Caso de almacenamiento del operando: ..........................................................211 CONCLUSIÓN......................................................................................................................................231 Pastillas de memoria en paralelo .......................................................................................................................................................................................................................................................................................224 DIRECCIONES DE MEMORIA .........................................................................................................................................184 CONCLUSIÓN..........189 INTRODUCCIÓN...............................209 INSTRUCCIÓN DE RUPTURA DE SECUENCIA .....................215 INDICE...............................................................................208 FASE DE PREPARACIÓN DE LA SIGUIENTE INSTRUCCIÓN ...................................197 ESTRUCTURA GENERAL...........................................................................................................................................183 ACCIONES DE SOFTWARE ................................................................................................................223 MEMoRia ....239 219 ...........................................................................................................................................................................206 FASE DE BÚSQUEDA DE LA INSTRUCCIÓN ..........................................................................................................................................................................................................................197 Microprocesadores...............................................................................................235 Memorias de acceso serie ..............................................................................................................................................202 LA UNIDAD ARITMÉTICA Y LÓGICA ..............................................................................201 ORGANIZACIÓN DE LA CPU .................................................................................197 DESCRIPCIÓN DE LOS COMPONENTES DE UN PROCESADOR ......................179 Desvios ........................................................................................................................................................................................................209 EL CANAL.........................................................................................................................................................................................................................................................................................................................................236 Memorias asociativas ......207 Caso de búsqueda del operando...................233 Memorias pasivas..............187 BOLILLA III: ARQUITECTURA DEL PROCESADOR..............................................................................................................182 Interrupciones .....................................204 LA UNIDAD DE CONTROL.......................................227 CLASIFICACIÓN Y ORGANIZACIÓN DE LAS MEMORIAS .229 Estructura de una RAM semiconductora ................................................................................................................................................228 Formas de acceder a las posiciones de memoria ..196 ARQUITECTURA DEL PROCESADOR..........................................................................200 EJECUCIÓN DE LAS INSTRUCCIONES ............183 ACCIONES DE HARDWARE ..225 ORDENAMIENTO DE BYTES .................................................226 CÓDIGOS CORRECTORES DE ERRORES ....................................................................................................Procedimientos ................210 LAS UNIDADES PERIFÉRICAS .....214 BOLILLA IV: MEMORIA..........................................................................................................229 Memorias de acceso aleatorio (RAM = Ramdom Acess Memory) ..... seguido de procesamiento: ....................................188 INDICE.......................................................................................................................................211 INTERRUPCIONES ...........207 FASE DE BÚSQUEDA O ALMACENAMIENTO DEL OPERANDO .................................................................................................................................238 MODOS DE DIRECCIONAMIENTO .................................................................................227 PARáMETROS y CARACTERíSTICAS MáS IMPORTANTES DE UNA MEMORIA 228 Capacidad..................................................................................................................................................

..................................................................................................................259 EL PROCESO DE ENSAMBLAJE ............................................................................................................................................240 Modo de direccionamiento relativo .......................................293 TECLADO: ............................................................................................................................................................................244 CONCLUSIÓN..........................................................................................279 CONCLUSIÓN...................................................................................................................................255 INTRODUCCIÓN AL LENGUAJE ENSAMBLADOR .....256 Formato de una sentencia en lenguaje ensamblador ......................................................................................................................................262 La segunda pasada ................................................................................... lenguaje ensamblador y los lenguajes de alto nivel ........ llamada y expansión de una macro .245 ......................243 Otros modos de direccionamiento ..294 MOUSE (RATON) ......................................................................................................292 PERlFERICOS DE ENTRADA: ...........................................................................257 Comparación entre el................................................292 RESEÑA HISTÓRICA.............................246 BOLILLA V: EL NIVEL DEL LENGUAJE ENSAMBLADOR...........................240 Modo de direccionamiento indexado ................... .....292 INTRODUCCIóN ........................................................Modo de direccionamiento directo ...................................................................................269 Definición....................................................................269 Macros con parámetros ...................................................................................................................................................................................................................................................................................................................................................................256 ¿Qué es un lenguaje ensamblador? ..284 INTRODUCCIÓN.....246 INDICE...................................................................................................................................................................................................................................................282 BOLILLA VI (Parte 1): PERIFÉRICOS...................................................................................................................................................................................................254 EL NIVEL DEL LENGUAJE ENSAMBLADOR..................261 La primera pasada ............................................................................271 MONTAJE (LINKING) y CARGA .......271 Implementación de macros en un ensamblador ..............................283 INDICE...............................................................................................................................................................................274 Estructura de un módulo objeto ..............................276 Tiempo de ligadura y reubicación dinámica ....................................................................................................................................................................................................................................295 Tipos de ratones.............296 Ratones Inalámbricos..................258 Afinación de programas .................................................................................................................................................................................................................................242 Modo de direccionamiento por registro indirecto ..................247 INTRODUCCIÓN..................................261 Ensambladores de dos pasadas ...................................................................................................................................239 Modo de direccionamiento indirecto ...........................................................................................291 PERIFÉRICOS.....................272 Tareas realizadas por el programa ensamblador .............................................296 Ratones Estacionarios.............................................................................................................................................................................................................................................................................296 220 .....................................266 La tabla de símbolos .....................................................267 MACrOS ................................................................................................293 Cuidados y advertencias.........................................................................................................................................................................................277 Enlace dinámico ................

...........................................................................................................................299 Fiabilidad del soporte....................................306 Impresoras sin cinta entintadas: ...........................................................................296 Profundidad de color..........................306 Impresoras láser: ..............297 Ventaja: ...........302 Prestaciones del DVD: ................................................................................................................................................................303 PERIFERICOS DE SALIDA: ................................................................. Disco flexible de 3 1/2pulgadas ...........................307 Aspectos técnicos......................297 TABLETA DIGITALIZADORA..........................304 PANTALLAS DE SISTEMAINFORMATICO (Monitor): .............................................................................................300 Facilidad de manejo y almacenamiento.....................297 Calibración......................................................306 Impresoras térmicas: ................302 DVD:...........................................................................................................................................................................303 La compresión MPEG-2: .......................................................................................................................................................................297 Escáner de mano: .........296 BOLAS GIRATORIAS: ..................................296 Tipos de escáner:................305 Impresoras de agujas: .............................................................................................................................................296 ESCANER ...............................................................................................................................................................................................................300 Discos opticos: ...........................................................................................................................................................................................................................................................................306 Impresoras Láser de color: ........................................................307 CONCLUSIóN..........................................................299 Discos. Disco flexible de 5 1/4 pulgadas ...................................................... ............................................................................................305 Impresoras con cinta entintada: .............................PANTALLAS TÁCTILES: ........298 PERIFERICOS DE ALMACENAMIENTO: ..........................................................................................297 Desventajas: .......................................................................................307 Como usar la Tecnología 56K ...............................................................297 LECTORES DE CODIGO DE BARRA.......................................... .......305 Impresora de Bola: ................297 Desventajas: ............................................................................................................................................................................................................................................298 LAPIZ OPTICO: ....................................................................297 Escáner de Rodillo:.......................................................297 Escáner de Sobremesa: ..........300 Disco duro..............................303 El futuro del DVD: .............................................................................................................................................................................................................................................................................................................................................................................................................................................................306 PERIFERICOS DE COMUNICACION.......................................................................................................................................................297 Ventajas: .......................................................................................................................................................................300 2............309 221 ....................................................................................................................................................304 Impresoras................................................300 1.....................................299 Discos flexibles....................................................................... ..........................................................303 El disco por dentro: ......................................................................................................................................................................................................................................................................................................................................................................308 CONCLUSIÓN....................................................................................................................................................................................................................301 Cintas magneticas: ..............................................................................................................................................306 Impresoras de inyección de tinta: .........298 LECTORES DE TARJETAS MAGNETICAS........................307 MODEM..........

.................................................................................................334 Otros periféricos.339 GLOSARIO...........................................310 INDICE.....................................................................319 Dispositivos de fichas y de banda perforada................340 CONCLUSIÓN...........323 Plotter...................................................................................................................................................................................................................342 CONCLUSIÓN FINAL.........................344 222 .......................................................336 Interrupciones (interrupts) ..........................................................................311 INTRODUCCIÓN......................................................................335 Polling (interrogatorio de tráfico) ...............343 BIBLIOGRAFÍA ..........................................................................................................................................................................................................323 Impresoras..............................................................................................................................................................332 Procesos de comunicación para la transmisión de datos a distancia.......................................................................................................................338 Transferencia DMA ..............................................................................................................................................................................................................................................................................................................................................................................................................................................................334 Técnicas de entrada/salida (input/output)...........................................................................................................................................BOLILLA VI (PARTE 2): TÉCNICAS Y DISPOSITIVOS DE ENTRADA SALIDA........................................319 Dispositivos de soporte magnético.............331 Terminales............330 La pantalla.....................................................318 TECNICAS Y DISPOSITIVOS DE ENTRADA / SALIDA (Input / Ouput)......................................

INTRODUCCIÓN 223 .

La figura 1 muestra esta relación. 224 . sustituyéndola por una nueva información. ya sea para una lectura. dato o instrucción. o para una escritura. también asociado a la memoria central. o escribir una nueva información en una célula de una dirección determinada. Para realizar estas operaciones. Este puede contener un "0" ó un "1" y es la unidad más simple posible. previamente habrá sido preciso cargar en este registro con la información que se quiere transferir ala célula en cuestión. El dispositivo de selección de memoria analiza el contenido del registro de dirección y sensibiliza la célula implicada. la Unidad de Control proporciona la dirección de la célula implicada a un registro asociado ala memoria central. la información almacenada en la célula será transferida a un segundo registro. No existirían las computadoras digitales con programas almacenados sin una memoria en la que los procesadores pudieran leer o escribir información. Las células están numeradas y la unidad de control conoce cada célula por su número. mientras que la operación de escritura destruye la información almacenada. Si se trata de una lectura. Puede considerarse como un conjunto de células. llamado "Registro de Intercambio" ó "Registro de Palabra". o también "Registro de Selección" de memoria. La Unidad de Control puede pedir leer el contenido. Marcelo Martinez 2003 MEMoRia La memoria es aquella parte de la computadora en donde se almacenan los programas y los datos. llamado "Registro de Dirección". cada una con posibilidad de almacenar una información (palabra). La unidad básica de memorias es el "dígito binario" al que se denomina "bit".APUNTES DE CATEDRA CARRERA: Cátedra: Profesor: AÑO: LICENCIATURA EN ANALISIS DE SISTEMAS – INGENIERIA EN SISTEMAS Procesamiento De Datos I Lic. llamado "Dirección". La operación de lectura no destruye la información almacenada en la célula. En el caso de una escritura.

Estos bytes se agrupan en "palabras". A continuación se dan algunas celdas de computadoras comerciales: Burroughs B1700 IBM PC DEC PDP-8 IBM 1130 DEC PDP-15 Honeywell 6180 1 bit por celda. 16 bits por celda. denominado "dirección". supongamos que se inventara un dispositivo electrónico altamente fiable que pudiera almacenar directamente los dígitos 0 al 9 en diez niveles de voltajes.000 combinaciones. Las computadoras que utilizan sistemas binarios también expresan las direcciones de memoria como números binarios. Si una celda tiene "k" bits. 36 bits por celda.Normalmente se dice que las computadoras utilizan aritmética binaria porque es "más eficiente". anuncian tanto aritmética decimal como binaria. el sistema decimal es más eficiente. Algunas máquinas. como un voltaje o la corriente. Si una dirección tiene "m" bits. 18 bits por celda. Sin embargo. En los últimos años los fabricantes de computadoras han establecido como norma una celda de 8 bits. Obviamente. Las celdas adyacentes tienen direcciones consecutivas. usando 16 bits en cada ejemplo: DECIMAL: 0001 1001 0100 0100 BINARIO: 0000011110011000 En el formato decimal. La relevancia de la palabra está en que la mayor parte de las instrucciones operan sobre palabras enteras. cada una. tendrá las direcciones de 0 a (n-1). Una memoria con "212" celdas de 8 bits y otra de "2 12" celdas de 60 bits. teniendo únicamente 10. En realidad lo que quieren decir es que la información digital puede almacenarse distinguiendo entre valores de alguna cantidad física continua. por ejemplo. El número de bits de la dirección está relacionado con el número de celdas direccionables directamente en la memoria y es independiente del número de bits por celda. 8 bits por celda. 12 bits por celda. en tanto 225 . Por esta razón se dice que el binario es más eficiente. A continuación se muestra el número 1944 codificado en forma decimal yen binaria pura. la que se denomina "byte". mientras que un número binario puro de 16 bits puede almacenar 65. Una computadora con una palabra de 16 bits tiene 2 bytes por palabra. por el cual los programas pueden referirse a ella. dejando 6 combinaciones sin usar. Si una memoria tiene "n" celdas. Los cuatro elementos proporcionarían 10. necesitarán. tales como los grandes computadores. Todas las celdas de una memoria tienen la misma cantidad de bit. De ahí que una máquina de 16 bits tendrá registros de 16 bits e instrucciones para manipular palabras de 16 bits. el número máximo de celdas direccionables es directamente "2m". direcciones de 12 bits. Con cuatro bits se tiene 16 combinaciones que se utilizan para codificar los dígitos 0 al 9. 16 bits pueden almacenar los números 0 al 9999. La importancia de la celda reside en que es la unidad direccionable más pequeña. DIRECCIONES DE MEMORIA La memorias constan de cierto número de "celdas" (ó posiciones) cada una de las cuales puede almacenar una porción de información.000 combinaciones. mientras que otra con una palabra de 32 bits tiene 4 bytes por palabra. suma de dos palabras. Este truco lo logran utilizando 4 bits para almacenar un dígito decimal. Cuatro de estas unidades podrían almacenar cualquier número decimal entre 0 y 9999. Cada celda tiene un número asociado. Con tales dispositivos. en consecuencia es el más fiable para codificar información digital. podrá tener cualquiera de sus "2k" combinaciones.536 combinaciones diferentes. El sistema de numeración binario necesita únicamente diferencias ente dos valores.

Imagínese que la "big endian" envía un registro a la "little endian" byte por byte. etc). pero como veremos. sin embargo. Las dos representaciones son correctas. mover. Para el primer caso. Debe quedar claro que la falta de una norma en el ordenamiento de bytes. ORDENAMIENTO DE BYTES Los bytes en una palabra pueden numerarse de izquierda a derecha o de derecha a izquierda. ú 8. mientras que en el esquema "little endian" corresponden al byte 0 (ó 4. 2. Es importante entender que en ambos sistemas un número entero de 32 bits. en donde comienzan los números se numeran por el extremo mayor (es decir los bytes de orden superior). se representa con los bits 110 en los tres bit más hacia la derecha (de orden inferior) de la palabra y ceros en los restantes 29 bits hacia la izquierda.que una máquina de 32 bits tendrá registros de 32 bits e instrucciones (sumar. Dirección 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. En principio esto podría parecer irrelevante. muchas aplicaciones requieren de una mezcla de enteros. 226 . Obviamente no es una solución simple. ya que no es lo mismo tratar datos numéricos que alfabéticos. etc) para manipular palabras de 32 bis. ú 11. Para completar la palabra. ó 12. Considerese un simple registro consistente en una cadena alfabética (por ejemplo nombre de los alumnos) y el de enteros (como puede ser su número de legajo. la cadena se termina con uno ó más bytes de ceros. ó 15. En ambos casos la palabra en que se ubica este número entero tiene la dirección 0 (cero). satirizó a los políticos que iniciaban una guerra debido a la discusión acerca de si los huevos debían romperse por el extremo mayor o menor. esto tiene grandes implicaciones. constituye una grave molestia cuando se intercambia información entre máquinas diferentes. etc). cuyos bytes están numerados de izquierda a derecha (máquinas de la familia Motorola). Si las computadoras solo almacenaran enteros. estas computadoras se denominan "big endian". En el esquema "big endian". Estos términos (en ingles) se deben a Jonathan Swift. con un valor de por ejemplo 6. estos bits se localizan en el byte 3 (ó 7. empezando por el byte 0 (cero). La figura 2(b) muestra la presentación análoga de una computadora con numeración de derecha a izquierda (familia Intel). entonces no habría problemas. Eso sin considerar que los bits también se invierten dentro de una palabra. cadenas de caracteres y otro tipo de datos. restar. su edad. etc). pero los problemas comienzan cuando una máquina trata de enviar un registro a la otra a través de una red. en contraposición a las llamadas "little endian" de la figura 2 (b). quien en su libro "Los viajes de Gulliver". La figura 2(a) presenta una parte de memoria de una computadora de 32 bits.

Las propiedades de detección y corrección de errores. se utiliza el término "palabra código". Dado el algoritmo para calcular los bits de verificación es posible encontrar las dos palabras de código cuya distancia de Hamming sea la mínima. Cuando se lee una palabra de la memoria. Como ejemplo sencillo de códigos detectores de errores. siendo "n" la longitud total (es decir n = m + r). CLASIFICACIÓN Y ORGANIZACIÓN DE LAS MEMORIAS En la descripción de los componentes de un procesador. Por ejemplo. De la misma manera. se verifican los bit adicionales para ver si ha ocurrido un error. Cuando en un procesador. Para referirse a una unidad de "n" bits. en la que se almacenan las instrucciones. que aun con "d" cambios. Cuando la cantidad de información a memorizar es elevada y en especial cuando el sistema digital de proceso es programable. la palabra original está más cerca que cualquier otra y puede ser unívocamente determinada. ya que cualquier error de un solo bit produce una palabra código con la paridad equivocada. pues así las palabras códigos legales se encuentran tan separadas entre sí. Para entender como se manejan los errores. se suelen utilizar registros de entrada / salida en paralelo o en serie disponibles como bloques funcionales de 4 a 8 bits en escalas de integración media (M SI) en la mayoría de las tecnologías. se encuentra la Unidad de Memoria Central ó Principal. además de los datos. Dadas dos palabras códigos cualquiera. y han de memorizarse las instrucciones del programa. En una palabra de memoria de "m" bits. los resultados parciales y los resultado finales del proceso. para corregir errores de un solo bit se requiere de un código con una distancia "2d + 1". consideremos que agregamos un bit de paridad. Por ello los elementos que memorizan información se pueden agrupar constituyendo una unidad de memoria en la que sólo se pueden acceder simultáneamente aun cierto número de aquellos. dentro de la Unidad Central de Proceso. existen "2 m" combinaciones de bits legales. Se puede usar para detectar errores sencillos. la mayoría usan códigos de detección o de corrección de errores. Para prevenir tales errores. es necesario entender que es en realidad un error. es posible determinar en cuantos bits difieren. entre las palabras código 10001001 y 10110001. el sistema es especializado y el número de bits a memorizar es pequeño. El número de bits en el que difieren dos palabras códigos se llama "distancia de Hamming". Sí una lectura de memoria da una palabra invalida. únicamente "2m" de las "2n" palabra códigos son válidas. nunca se necesita tener acceso a toda la información simultáneamente. conteniendo "m" datos y "r" bits de verificación. Supongamos que una palabra de memoria es de "m" bits de datos a los que se agregan "r" bits redundantes o de verificación. el cual se elige de modo que el número de bits con valor 1 sea par (o impar). Dicho código tiene una distancia de 2. hay una diferencia de 3 bits. se necesitarán "d" de verificación para convertir un código en otro. Esto significa que si dos palabras están separadas ente sí por una distancia de Hamming de "d" bits.CÓDIGOS CORRECTORES DE ERRORES La memoria de una computadora puede en ocasiones cometer errores debido a picos o caídas de voltajes en el suministro de energía eléctrica u otras causas. los datos u operandos. Cuando se usan estos códigos se agregan bits extras a cada palabra de memoria en una forma especial. Para detectar "d" errores de un bit se necesita de un código con una distancia "d + 1". dependen de su distancia de Hamming. la computadora sabe que ha ocurrido un error de memoria. porque con dicho código no es posible que "d" errores de un solo bit puedan cambiar una palabra válida en otra palabra válida. pero por la forma en que se calculan los bits de verificación. "Se define por lo tanto una unidad de memoria como un conjunto de dispositivos biestables (que pueden encontrarse en dos estados distintos) agrupados de tal manera que solamente es posible introducir información o leer la que poseen simultáneamente en un 227 .

Estudiaremos los parámetros más importantes de una memoria y la división de las memorias de acuerdo con estos parámetros. El número de palabras o posiciones de una memoria viene dado por lo tanto por el cociente: m= N n A la selección de una determinada posición de memoria para introducir información en ella o leer la que contiene. tal que: m= 2b La unidad de capacidad. 228 . el alumno puede comprobar que si "b = 14". Nos referiremos exclusivamente a las memorias que forman parte integrante de un sistema digital de proceso y que están física. que es el "bit" . formadas por un cierto número "n" de bits accesibles simultáneamente. en lo que se refiere al número de posiciones de memoria se considera igual a 1024 (por ser la potencia de 2 más próxima a 1000) y se la denomina "k". La capacidad total de una memoria se suele indicar mediante el número de posiciones y el número de bits de cada posiciones. El número de variables binarias necesarias para poder seleccionar "m" es "b". la información se almacena en grupos de bits denominados "posiciones" o "palabras". Estas memorias constituyen lo que se denomina la Memoria Central del sistema. La capacidad se puede considerar. PARÁMETROS Y CARACTERÍSTICAS MÁS IMPORTANTES DE UNA MEMORIA Capacidad Es la cantidad de información que puede almacenar. Pero en genera 1. se la denomina "direccionamiento" de dicha posición. la capacidad se mide en la unidad de medida de información en dicho sistema. por lo tanto. se hace que "m" sea una potencia de "2".mente situadas en el mismo recinto físico que la Unidad de control y la Unidad Aritmética y Lógica. Por ejemplo. Para que se aproveche al máximo la capacidad de se lección. El número total de posiciones de una memoria de "n * k" es "n x 1024". igual al numero "N" tota 1 de bits. la memoria tiene una capacidad de 16K. Analizaremos los diferentes tipos de memorias desde el punto de vista funcional independiente de la tecnología. Para seleccionar 1024 posiciones de memoria se necesitan 10 bits. • De la cantidad de información a memorizar. Dado que la información se almacena en el sistema binario. • De la forma en que se obtienen la información a su salida. una memoria de "132 k" posee: 32 x 1024 = 32798 posiciones.grupo reducido de ellos ". Las características que ha de poseer una unidad de memoria dependen: • De la forma en que van a presentar la información a su entrada. ya que: m= 2b = 210 = 1024 Como practica.

o leer la que contiene. Por lo tanto el tiempo de acceso a cualquier posición de la memoria es el mismo 229 . Aleatoriamente se puede seleccionar cualquier posición de la memoria para introducir información o leer la que contiene. Tal como se dijo. Por ello existen varias formas de acceso a una posición de memoria. En esta clasificación se incluyen solamente las memorias que no poseen partes en movimiento y que en general se encuentran en el mismo recinto físico que la Unidad de Control y la Unidad Aritmética y Lógica. tanto de datos como de instrucciones de los sistemas programables. se denomina "acceso a la memoria".Formas de acceder a las posiciones de memoria La acción de introducir información (escribir ó grabar) en una posición de memoria. En esta figura se representa una visión panorámica de los diversos tipos de memorias y la interrelación que existe entre ellas. Memorias de acceso aleatorio (RAM = Ramdom Acess Memory) Son aquellas en las que el tiempo que tarda en leerse o escribirse en una posición es el mismo para todas las posiciones de la memoria. lo que da lugar a la división de las memorias indicadas en la figura 3. se realiza actualmente en sistemas físicos que poseen partes en movimiento y reciben el nombre genérico de periféricos. El almacenamiento de información en cantidades elevadas (cientos de miles de "k" palabras). nunca es necesario leer o escribir simultáneamente todas las posiciones de una memoria.

en un registro direccionado se presentan en la pastilla de memoria en los terminales de entrada "I 3 I2 I1 I0". Y así sucesivamente. La selección de la posición cuya información se desea leer o escribir se realiza mediante "b" bits en paralelo denominados "bits de dirección". Como hay tres bits de dirección se pueden seleccionar "2b = 8" registros. se accede a 1 registro "R0". La memoria allí representada tiene la capacidad para almacenar (memorizar) 8 palabras de 4 bits cada una. Se supone que solamente se puede seleccionar simultáneamente una posición de memoria para leer su contenido o introducir información en ella. bits cuya información se desea leer o escribir información simultáneamente. se accede al registro "R1". este debe direccionarse. la palabra debe presentarse en la entrada. Estos bits se denominan bits de dirección y al conjunto de los bits de dirección se los conoce como "dirección".. R1. R2 . R7" y cada registro consta de 4 flip-flop. La pastilla tiene 8 registros individuales "R 0. La memoria está organizada en "n". En la figura 4 se representa el esquema de bloques general de una memoria de acceso aleatorio. Entonces cada uno tiene una dirección y se accede a un registro particular almacenando los bits de dirección del registro en los terminales de dirección.. Cuando "A2 A1 A0 = 001". El número total de posiciones que se puede seleccionar es: m = 2b La asignación de las patitas de una pastilla de circuito integrado (IC = Integrated Circuit) de memoria como las especifica el fabricante se indica en la figura 4. Los 4 bits que están almacenados.independientemente de su ubicación o situación. Cuando "A2 A1 A0 = 000". es decir escritos. Para escribir una palabra en el registro. Los registros se identifican por los niveles lógicos en los terminales: "A2". "A1" y "A0". y deben habilitarse o activarse los terminales de "Habilitación de Escritura" (WE = 230 .

Write Enable) y de "Selección de Pastilla" (CS = Chip Select). es decir. Estructura de una RAM semiconductora En principio la estructura lógica de una RAM semiconductora. se indica en la figura 5. La forma de disponer los bits en palabras se denomina organización de la memoria. Si CS no se activa. la organización de la memoria es "4 x 2". Así pues: WE = 0 escribe en memoria y WE = 1 lee de memoria Por esta razón algunos fabricantes etiquetan los terminales de habilitación de escritura con: Lectura / escritura (R / W) Tanto para lectura como para escritura la entrada de selección de pastilla "CS" debe estar habilitada. Entonces no es posible ni leer ni escribir en memoria. En base ala convención adoptada. tanto para leer como para escribir. La memoria de la figura anterior se describe como una memoria de 8 palabras de 4 bits / palabra. Por lo tanto. Para leer la memoria presentamos la dirección. Debido a que podemos leer o escribir palabras en la memoria. la memoria lleva a los terminales de salida "O 3 O2 O1 O0" la palabra almacenada en el registro direccionado. activada. habilitamos la entrada CS y ponemos la entrada de WE = 1. Además como podemos escoger cualquier registro de memoria aleatoriamente. esta se denomina de "lectura / escritura". El numero total de bits en la figura anterior es "8 x 4 = 32". En el proceso de lectura. En esta disponemos de cuatro palabras de 2 bits cada una. el diagrama indica que el terminal externo WE se activa en el nivel bajo (activo cuando WE = 0 en un sistema de lógica positiva) y CS se activa en el nivel alto. del tipo que hemos discutido. es decir. Nuestro interés se centra en la estructura lógica de la memoria y no en los detalles electrónicos. hemos incorporado algunas simplificaciones en comparación con una memoria física real. también se las conoce como "memorias de acceso aleatorio" ó "RAM = Ramdom Access Memory". 231 . la pastilla está aislada del mundo exterior.

cuando el nivel lógico de la línea de control (línea de trazos que atraviesa el conmutador) es "1". la salida de la puerta 62 está en "1" lógico. O sea. Por lo tanto.536 = 216 bits" ó aún mayor en la actualidad. mientras que las salidas de las demás compuertas lógicas AND del decodificador están en "0" lógico. los conmutadores que conectan "I1" e "I0" a las líneas de bits se cerrarán y los flip-flops asumirán estados correspondientes a los niveles lógicos de las entradas de datos. Los bits se almacenan en "Flip-Flop" elementales. 232 .La estructura utiliza el conmutador controlado por lógica. el conmutador se cierra y se establece la conexión. los flip-flop se conectarán a los terminales de salida. a un precio bastante bajo. por ejemplo. las salidas de las puertas "G 0" y "G1" están en "0" lógico y las líneas de bits no se conectan ni ala entrada de datos ni a los terminales de salida. para que la palabra almacenada pueda ser leída. Cuando tenemos. Comercialmente se disponen de pastillas de Circuito Integrado (IC = Integrated Circuit) que tienen incorporados "65. es decir formados por dos inversores acoplados. cuando el nivel lógico de la línea de control es "0". Si "CS = 1" y "WE = 1". ya que solamente los conmutadores de estos flip-flops están cerrados y por consiguiente conectados con las líneas de bits. solo se puede acceder a los flip-flop del Registro de Palabra 2. Si "CS = 1 " y "WE = 0 ". Si la selección de la pastilla está en cero lógico. la entrada de dirección "A1 A0 = 10" direcciona la palabra 2 y sólo la palabra 2. el conmutador se abre. Los bits de dirección "A1" "A0" se aplican al decodificador. "A1 = 1" y "A0 = 0".

la dirección se aplica simultáneamente a los terminales de entrada de dirección de las demás pastillas.Pastillas de memoria en paralelo Con frecuencia surgen casos en los que no es adecuado el número de palabras de una pastilla. lo mismo que los terminales WE. En la figura 7 mostramos la forma de poner en paralelo dos pastillas de 8 palabras. 4 bits / palabra. se conseguirá una memoria de 8 palabras. La pastilla 1 acepta y almacena 4 bits (0. y la pastilla 2. 5. Cuando "A4=1". pero el número de bits se ha incrementado de 4 a 8. Los 3 bits de dirección se aplican a las pastillas de dirección de ambas memorias. cuando se activa la entrada CS de una pastilla. 2. todas las patitas CS se conectan entre sí para tener una sola entrada CS y las entradas WE se tratan de la misma forma. El bit "A4" de dirección de selección de pastilla selecciona por lo tanto una u otra de las pastillas. para construir una memoria cuyo número de palabras sigue siendo 8. los tres bits de dirección se aplican a ambas pastillas. encontramos en catálogos de fabricantes memorias cuya organización es "256 x 1". simplemente colocando "n" pastillas en paralelo. "1024 x 1'. se desactiva la entrada CS de la otra. 1. Cuando se añadan pastillas. Así. 12 bits / palabra. y así sucesivamente. 4 bits por palabra. 233 . Hay dos pastillas de 8 palabras en paralelo. otros 4 bits (4. En la figura 6 se representa la conexión de pastillas en paralelo para incrementar el número de bits por palabra (pero no el número de palabras). y cuando "A4=0". Así pues. ó las dos cosas simultáneamente. Como antes. pero en lugar de tener un bit de entrada CS común aplicado a las dos pastillas. Las entradas de selección de pastilla y habilitación de escritura seleccionan y habilitan simultáneamente ambas pastillas. Por supuesto. La entrada CS del sistema de memoria (la de entrada al inversor) ahora es un bit de dirección adicional. con tres pastillas de 8 palabras. 7). Una vez seleccionada una pastilla con un número adecuado de palabras. 3). que llamamos "A 4". para obtener una memoria de 16 palabras de 4 bits / palabra. 6. se pueden conectar en paralelo más pastillas adicionales. la pastilla direccionada es la 2. Para dar mayor flexibilidad al problema de los bits por palabra. 4 bits / palabra. El problema puede remediarse colocando las pastillas en paralelo. Los terminaks "CS" de las pastillas se unen. "4096 x 1". ó el número de bits por palabra. se direcciona la pastilla 1. etc. entonces ensamblamos una memoria de "n" bits por palabra. los fabricantes disponen de pastillas de memoria con palabras de 1 bit. Análogamente.

Los bits de selección "A0". Los bits de entrada de datos y la entrada WE se aplican en común a ambas pastillas. Por lo tanto. Supongamos. "A2" seleccionan la posición de una palabra particular en la pastilla seleccionada. 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. Las salidas del decodificador se utilizan entonces para activar las entradas de selección de pastillas. puede. El esquema paralelo de la figura 7. Un problema especial. "A2" a los terminales de entrada de dirección de las pastillas. Como antes. Podemos introducir un bit de dirección "A5". "A1". por ejemplo. por supuesto. extenderse a más pastillas. "A1". Los bits de dirección "A4" y "A5" se aplicarían aun decodificador como se indica en la figura 8. surge en este caso que estamos considerando. 234 . que quisiéramos utilizar este esquema para colocar en paralelo cuatro pastillas con el fin de obtener una memoria de 32 palabras de 4 bits / palabra. podríamos aplicar tres bits de dirección "A0". que no aparecía cuando las pastillas se colocaban en paralelo para incrementar el número de bits por palabra como en la figura 6. las salidas de las pastillas tendrán que aplicarse a un bus común. ésta es la razón por la que aparece dicho bus en la figura 7.

se mide en forma cualitativa por la diferencia entre el tiempo de lectura y el tiempo de escritura. no es necesario almacenar los bits en flip-flop y por ello una ROM puede ensamblarse completamente a partir de circuitos combinacionales. todavía se permite esta terminología. indicado en la figura 3. ó memorias pasivas programambles borrables (EPROM = Erasable Programmable Read Only Memories): Son aquellas cuyo contenido pueden. por un procedimiento especial.Memorias pasivas El parámetro permanencia de la información.Memorias totalmente pasivas (ROM = Read Only Memories): son aquellas memorias que nunca pueden ser escritas por el que las utiliza. la de sólo lectura también son de acceso aleatorio. el tiempo de escritura se puede considerar infinito y el tiempo de lectura tiene un cierto valor que depende de la tecnología con la cual ha sido fabricada la memoria. Se denominan memorias pasivas a aquellas en las que existe gran diferencia entre el tiempo de lectura y el de escritura. 3. En una ROM el bit almacenado en cualquier posición. no obstante. ya que las operaciones de borrado y re-escritura no pueden realizarse mientras la memoria no esté trabajando en un sistema digital. para quien la utiliza. Por lo tanto. no tiene que cambiarse. A su vez este tipo de memorias se pueden clasificar tal como se indica a continuación: 1. Mucha gente a indicado esa inconsistencia. 2. las memorias de acceso aleatorio se clasifican en memoria de escritura / lectura (R/W) o activas. La memoria debe extraerse del sistema y su modificación puede llevar horas. Como la memoria de lectura / escritura.Memorias pasivas reprogramables. Por consiguiente.Memorias pasivas programables (PROM = Programmable Read Only Memories): Son aquellas cuyo contenido pueden ser escrito por el usuario una sola vez. La grabación ó escritura la realiza el fabricante. De acuerdo con este parámetro. 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 sólo lectura. Estas memorias se denominan apropiadamente de solo lectura. el cual solamente puede realizar la operación de lectura. ser borradas y programadas por el usuario varias veces. el tiempo necesario es varias veces superior al de lectura. Realmente una ROM no 235 . el cual es mucho mayor. La escritura se realiza por un procedimiento especial.

Los registros de desplazamiento se clasifican en dos clases. en estas memorias de acceso serie.Registros de desplazamiento dinámicos: Son aquellos en las que los impulsos de desplazamiento no pueden anularse por tiempo indefinido porque de esta manera desaparece la información contenida en su interior. Se puede deducir que la memoria FIFO se comporta igual que un registro de desplazamiento en la operación de lectura. consta de un decodificador y de un codificador. 2.es más que un conversor de código. las mismas pueden clasificarse en: 1.Memorias FIFO (First Input First Output): Son memorias de acceso serie en las que la primera información que entra es la primera en salir. b. pero no así en la operación de escritura.Registros de desplazamiento estáticos: Son aquellos en los que los impulsos de desplazamiento pueden anularse por tiempo indefinido.Registros de desplazamiento: Como ya hemos visto. 236 . La orden externa de desplazamiento está constituida por los impulsos de un generador. Dentro de este tipo de memorias. Memorias de acceso serie Son aquellas en las que el tiempo que tarda en leerse o grabarse una posición depende de la situación física en el interior de la memoria. Para introducir información en una posición hay que hacerla pasar por todas las que la preceden hasta alcanzar los terminales de entrada. para leer el contenido de una posición hay que hacer pasar la información por todas las que la siguen hasta alcanzar los terminales de salida. la información queda almacenada en las diferentes posiciones de la memoria alas que fue llevada por el último impulso de desplazamiento aplicado. y por lo tanto. de acuerdo con las características de frecuencia de los impulsos de desplazamiento: a. cada orden externa de escritura o lectura desplaza la información una posición en el interior de la memoria. y de acuerdo a la forma de entrada-salida. En la figura 9 se representa gráficamente la forma en que se mueve la información en el interior de la memoria FIFO al realizar sucesivas operaciones de escritura lectura. De forma similar. en la que la información se desplaza desde la entrada hasta la posición vacía más cercana a la salida.

En la figura 10 se indica gráficamente la forma en que se realiza la escritura y la lectura de una memoria LIFO.Memorias LIFO (Last Input First Output): Son memorias de acceso serie en las que la información que entra en la última operación de escritura es la que primero sale en la operación de lectura que se realice.3. 237 .

El alumno puede deducir que en una operación de escritura. El otro campo es el que da como respuesta la memoria cuando existe coincidencia entre el campo de comparación y la información de entrada. sino que se suministra la información ala memoria para observar si ésta la contiene en alguna de sus posiciones.Dividida en dos partes ó campos: Un campo es el de la información que se compara con la que se presenta a las entradas de la memoria en una operación de lectura. Memorias asociativas Estas memorias se caracterizan porque la búsqueda de información en la operación de lectura no se realiza indicando una dirección y observando su contenido. La información almacenada en cada posición de una memoria asociativa puede estar organizada de dos formas fundamentales: a. toda la información contenida en la memoria se desplaza una posición hacia la derecha y en una operación de lectura se desplaza una posición hacia la izquierda. 238 . b.Toda la información contenida en cada posición de la memoria se compara con la información de entrada: La memoria da solamente como respuesta en general un bit cuyo estado indica si existe alguna información en el interior de la memoria que es idéntica a la presentada a la entrada.

sino la dirección donde se encuentra la dirección del operando. en el primer caso la dirección se describe como directa. que contiene lo que convenimos en llamar las "Condiciones de Direccionamiento". por ello vamos a pasar revista a las diferentes técnicas de direccionamiento. No todos los procesadores o microprocesadores tienen todos los tipos de direccionamiento. Por ejemplo. MODOS DE DIRECCIONAMIENTO Hemos visto que generalmente (aunque no necesariamente) una instrucción consta de una parte de operación y otra de dirección. la instrucción contiene la dirección de la posición de memoria donde se encuentra el operando. Este direccionamiento exige un ciclo de memoria para obtener el operando. El tipo de procesamiento que debe sufrir el contenido de la zona de dirección viene especificado.La estructura asociativa de una unidad de memorias es adecuada para el almacenamiento de ciertos tipos de organizaciones de datos. y microcomputadoras se emplea una amplia gama de modos de direccionamiento.mente utilizados en los procesadores actuales: Modo de direccionamiento directo En el direccionamiento directo. mientras que en el segundo caso es una dirección indirecta. La figura 11 muestra esta situación. una tabla de clientes con su dirección como dato asociado. Estas equivalen generalmente a una transformación de la parte de dirección de la instrucción en la dirección que se transferirá finalmente al Registro de Selección de la memoria para obtener la información deseada. como ya lo señalamos. La parte de dirección puede contener la dirección de un operando utilizado en la ejecución de la instrucción. la instrucción constará de tres partes: Veremos a continuación los modos de direccionamiento más comun. se debe organizar en forma asociativa para que al presentar ala memoria el nombre de un cliente. Esto es lo que se conoce como "Modo de Direccionamiento". cuando este impone un tipo determinado. En otras ocasiones la parte de dirección de la instrucción puede contener. 239 . Debido a estas distintas formas de direccionar los registros de un computador. en algunos pueden existir modos que en otros no existen y viceversa. ya sea por el Código de Operación. Llamaremos a esta última "Dirección Efectiva". En computadoras. no la dirección del operando. o por la configuración binaria de una parte de la instrucción. ésta de a la salida su dirección.

Si no queremos pasar aun formato de instrucción de dos palabras. puede emplearse el direccionamiento relativo para alcanzar directamente determinadas zonas de la memoria. si se tomasen 8 bits conjuntamente para el Código de Operación y las Condiciones de Direccionamiento. como se muestra en la figura 13. Esta a su vez. sino la dirección de la posición de memoria donde se encuentra la dirección del operando. la localización de un operando direccionado indirectamente exigirá dos ciclos de memoria: un ciclo para buscar la dirección efectiva. Es así como un calculador cuya palabra es de 16 bits.Modo de direccionamiento indirecto En el direccionamiento indirecto. frecuentemente llamado "Registro de Traslación". de acuerdo a la figura 12. otro ciclo para buscar el operando. Modo de direccionamiento relativo La dirección relativa no indica la posición de la información en la memoria en valor absoluto. Veamos tres ejemplos: 1. La dirección efectiva es la suma de la "Base" y el "Desplazamiento". no quedarían más que 8 bits para la dirección.Direccionamiento por Base y Desplazamiento En la máquina existe un registro llamado "Registro Base". 240 . Las técnicas de direccionamiento relativo se emplean especialmente para permitir direccionar a toda la memoria. la instrucción no contiene la dirección de la posición de memoria donde se encuentra el operando. La dirección efectiva se obtiene sumando la dirección relativa con la dirección de referencia. sino que la sitúa en relación a una dirección de referencia. Esto permitiría direccionar "28 = 256" posiciones de memoria. que contiene la dirección de referencia (primera dirección de un programa o de una zona de datos). cuando lo normal es que los ordenadores de este tipo poseen muchas posiciones más. como también dijimos. está almacenada en un registro. Por lo tanto. A la información que alberga la parte de dirección de la instrucción se le llama "Desplazamiento".

por lo que no capacita a la máquina para direccionar más palabras que las que contiene la página (ó dirección de página).Algunos calculadores admiten varios registros de base. Este modo se muestra en la figura 15. la parte de di rección de la instrucción contiene "n" bits. según que la parte de dirección de la instrucción se sume o se reste con el contenido del Contador de Programa. 3. 241 . La figura 14 muestra este modo de direccionamiento. Con este sistema es posible generalmente direccionar dos zonas de memoria a un lado ya otro de la instrucción en curso. La instrucción debe especificar entonces la dirección del Registro Base escogido 2. y de la parte de dirección de la instrucción. En genera 1.Oireccionamiento por ReFerencia al Proqrama El contenido del contador de programa sirve de dirección de referencia.Oireccionamiento or Yuxta osición Se considera a la memoria dividida en zonas de "2n" palabras llamadas "Páginas". que suministra la dirección dentro de la página.

lo mismo que un tipo más evolucionado de direccionamiento por página. En el caso de las PCs se usa un sistema parecido para poder direccionar más memoria. se utiliza en grandes ordenadores para resolver problemas de asignación de memoria en multiprogramación. el computador debe estar equipado con un registro especial (distinto del Contador de Programa) empleado para permitir direccionamiento indexado. La posición de memoria donde se localiza el operando se encuentra mediante la suma "N + I". datos almacenados vectorialmente en células sucesivas (tablas) de la memoria. hay direccionamiento absoluto en la página cero. La dirección efectiva se obtiene sumando a la parte de dirección de la Instrucción el contenido de un registro de la Unidad centra 1 llamado "Registro Indice". En este caso el direccionamiento por yuxtaposición puede ser considerado como direccionamiento por referencia al principio de la página en curso. implica el direccionamiento absoluto. y denominado "Registro Indice" (I).Las condiciones de direccionamiento. mediante una sola instrucción en un bucle de programa. Permiten direccionar directamente zonas de memoria (además de las "2n" primeras palabras) sin necesidad de recurrir al direccionamiento indirecto. en la mayoría de los pequeños ordenadores organizados por páginas. si está abierta hay direccionamiento en la página de la instrucción. es decir dentro de la página cero. a no ser que se utilicen instrucciones sobre dos palabras. El programador lo utiliza para tratar. para utilizar el direccionamiento indexado. Modo de direccionamiento indexado En el direccionamiento indexado. 4. Sin embargo. El direccionamiento por base y desplazamiento. o el direccionamiento en la página de la instrucción en curso por yuxtaposición de los bits de mayor peso del contador de programa y de la dirección dentro de la página.Complementos acerca del direccionamiento relativo Al menos uno de estos direccionamiento relativos se encuentra en las máquinas de palabra corta (12. incremento o disminución en uno. la parte de dirección de la instrucción contiene un número "N" que puede ser positivo o negativo. como en el relativo. Si la compuerta (no dibujada en la figura) está cerrada. Las referencias fuera de esta zona hacen necesario un direccionamiento indirecto apoyado en una célula de memoria perteneciente a estas zonas directamente accesibles. El direccionamiento correspondiente es 242 . según su valor. llamándose a menudo a su contenido "Indice". como carga. comparación. Este registro admite un cierto número de operaciones. lectura. 16 ó 18 bits) donde la zona reservada a la dirección no basta para direccionar a toda la memoria. poseen un bit de direccionamiento que.

Otras máquinas poseen dos registros índice. ambos resultan comparados al momento de la instrucción a fin de bucle y se origina un salto al principio del mismo mientras no se produzcan coincidencias entre los dos valores. lo que quiere decir que la dirección especificada en la instrucción es la de la primera célula del vector (tabla) ya ella se suma el valor del índice. a menudo llamado "Puntero" (P) (Pointer Register). En su lugar. con la existencia de varios registros índice. con objeto de economizar el costo de los correspondientes registros. La figura 16 ilustra el concepto de indexación. La dirección especificada en la instrucción es la última del vector. El índice se incrementa en uno a cada pasada y se sale del bucle cuando el índice es cero. Este. la instrucción completa se incluye en los bits asignados a la parte de operación de la instrucción. Una instrucción que invoque realmente direccionamiento de registro indirecto no tiene bits significativos en su parte de dirección. registro "P" contiene la dirección del operando. inicialmente puesto a cero e incrementando en uno cada vez que se ejecute la instrucción de fin de bucle. En muchos ordenadores pequeños se implantan los índices en posiciones reservadas de la memoria central. el Indice se inicializa en "-(n-1)". apunta a la posición de memoria del operando. Una instrucción típica que utiliza registro de direccionamiento indirecto debería especificar: "Cargar el acumulador con el operando localizado en la dirección de memoria dada en el registro P". Esta última compara el índice con el número de elementos del vector y origina un salto al principio del bucle mientras quede algún elemento a procesar. tienen un registro especial.indexado. Modo de direccionamiento por registro indirecto Algunas computadoras que incorporan la facultad del direccionamiento de registro indirecto. donde "n" representa el número de los elementos del vector. 243 . En algunas máquinas también existen registros de autoíndice incrementables en 1 cada vez que son referenciados. En algunos ordenadores. es decir. uno contiene el índice y el otro el valor máximo de este índice.

R1 es la "dirección" donde se lee una palabra y R2 es la "dirección" donde escribe la palabra. La figura 17 muestra este tipo de direccionamiento. incluyen los siguientes: 1. denominados "modos de direccionamiento". en la instrucción "Borrar el acumulador".Direccionamiento Inmediato No es propiamente un direccionamiento.Direccionamiento Inherente Ordinariamente una dirección que es parte de una instrucción se refiere a una posición de memoria. la instrucción sería: "Cargar al acumulador directo con 37". Cuando una instrucción indica una fuente o un destino de algunos datos y no se direcciona específicamente. se dice que la instrucción tiene una dirección "inherente".Otros modos de direccionamiento Otros esquemas comunes para localizar fuentes de operandos o destinos de operandos. los "datos" movidos están en una palabra cuyos bits son todos 0 (ceros) y la dirección de destino de estos datos es el registro acumulador. 244 . 2. De nuevo. en la instrucción "Mover el contenido del registro R1 al registro R2". Por ejemplo. sino el operando mismo. significa cargar al acumulador con el número 37. puesto que la parte de dirección de la instrucción no contiene la dirección del operando. Así. ya que no se hace referencia a la posición de memoria.

CONCLUSIÓN 245 .

BOLILLA V: EL NIVEL DEL LENGUAJE ENSAMBLADOR 246 .

.........................14 Hardware:.....................................................................................26 INDICE...................................................................................................................................................................................................................................................35 Compuertas......................................................................................14 HARDWARE Y SOFTWARE: ...15 Unidad aritmético-lógica:...38 247 ..................................................................................................35 Algebra booleana....................19 Manejo de interrupciones:.......................................................................................................21 Multiplexor: ..15 Arquitectura .....19 Ejemplo de encadenamiento margarita:.............................................................................................................................................................................................................................................................13 CONCEPTO:..............................................................................................................................................................20 TECNOLOGÍA DE CANALES:..........................................................................................4 INDICE..................................................................................................22 Multipexor por bloques: .......................................................................21 TIPOS DE CANALES:....................22 SISTEMA OPERATIVO....................................................................................................................................................12 LA COMPUTADORA.........................35 COMPUERTAS Y ALGEBRA BOOLEANA.................................................................................................................................................................................................................................................................................................................19 Dispositivos de E/S........................................................................................5 INTRODUCCIÓN........................................................INDICE INDICE GENERAL.....................................................................25 BOLILLA II (Parte 1): EL NIVEL DE LOGICA DIGITAL............................................................Componentes Básicos:............................................................................................................................................21 Selector..........................................1 BOLILLA I: LA COMPUTADORA............................................................................................................................................................................................................................................15 Periféricos: ...................................14 Al software se lo clasifica en dos grupos: .................................................................................................37 Implementación de funciones booleanas .......................................................................................................................27 INTRODUCCIÓN.............15 Memoria:(Memoria Central).............................................................................13 Computadora y Circuitos:..................................................................15 Unidad de Control:..................................................................................................................................................................................................................................................................................................................................23 Introducción: ..........................................................................................................................................22 Spoll: ....16 Buses síncronos y asíncronos: ........14 Software: ....................................................................................................................................................................15 Núcleo de la computadora: ........................................................................................................................................................................................................................................................................................................13 FUNCIONES Y ACCIONES:..............................23 ¿QUÉ ES UN SISTEMA OPERATIVO?....15 BUSES DE COMPUTADORAS:..18 Arbitraje del bus:.....................34 EL NIVEL DE LOGICA DIGITAL...............................24 CONCLUSIÓN.......................................13 Para qué sirve una computadora?:...............................................................................20 Canales de e/s...................................................................................................................................................................................................................................................................................................................19 Solicitud del Bus...................................................................................................................................................................................................

............................................................................................................................................................................................................................................................................................................................................95 UNA MICROARQUITECTURA TIPICA ....................................70 BUSES ASINCRONOS..........103 248 .................................................................................................40 CIRCUITOS DIGITALES BÁSICOS...................................55 MEMORIA...........................................59 Registros..............................................................................................66 Buses de computadora...........................77 CONCLUSIÓN........98 Cronología de las microinstrucciones ............................................................92 Unidades aritméticas y lógicas y registros de corrimiento ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................96 La ruta de datos ................................................................................................................59 Flip-flops y registros...............................................................................................................................................................................................................102 UNA MACROARQUITECTURA TIPICA ....................................53 Registros de corrimiento...................................................................................................................................................................................................................................................................................................80 INDICE...........................................73 Arbitraje del bus ....................................57 Bieslables SR sincronizados...........................................................55 Relojes ...........................................................54 Unidades aritméticas y lógicas.............................51 Arreglos (matrices) lógicos programables .........................................................................................49 Comparadores ......79 BOLILLA II (Parte 2): EL NIVEL DE MICROPROGRAMACIÓN....................53 Sumadores ............................................................47 Multiplexores .......51 Circuitos aritméticos...................................................81 INTRODUCCIÓN...................................................................................................93 Memoria principal .......................................................64 MICROPROCESADORES y BUSES.................................................68 Buses síncronos .....................74 Manejo de interrupciones ................................................47 Decodificadores ..........................................................................................................................................................................................................................................................................66 Microprocesadores .....................................................................................60 Organización de las memorias.......................................................................................................................................................................96 Microinstrucciones ......................................................................................................................................................................................................................................................................................................................................90 Registros ..........................94 Encapsulado de los componentes .......................................44 Circuitos integrados ...................................................................................................................................................................89 REPASO SOBRE EL NIVEL DE LÓGICA DIGITAL .................................................................................................44 Circuitos combinacionales ...............................................................................103 Pilas ...........................................................................................................................................................................88 EL NIVEL DE MICROPROGRAMACIÓN .........92 Relojes ........................................................................................................................................................................................................................................................................61 Propiedades de las memorias.........90 Buses .................................................................................................................................................................................................................................................................................................................57 Biestables..100 Secuenciamiento de las microinstrucciones ..................................................59 Biestables D sincronizados....Equivalencia entre circuitos............90 Multiplexores y decodificadores ...........................................................

.............................................................143 EL NIVEL DE MÁQUINA CONVENCIONAL....151 Indexación.......150 Direccionamiento directo.........................134 ......................160 Tipos de Instrucciones ..........................................155 Evaluación de fórmulas en la notación polaca inversa.........................................................................................................................................................................................................................146 Códigos de operación con extensión...........................................................................................166 Control de iteraciones ....................................149 Direccionamiento................................................................................................................................................................................135 BOLILLA II (Parte 3): EL NIVEL DE MAQUINA CONVENCIONAL........................................................................................................................................................................167 Entrada / salida .........................110 El ejemplo de microprograma ...........................................................................................................174 Corrutinas .............................................................................................................................................................113 Perspectivas ...........................115 Microprogramación horizontal frente a microprogramación vertical..............................144 EJEMPLOS DEL NIVEL DE MAQUINA CONVENCIONAL...........................173 Flujo de control secuencial y saltos ..................................................................................................151 Direccionamiento indirecto......................................................................................................................................................................149 La PDP-11......................................................................................................................................145 Criterios de diseño de formatos de instrucción...............107 MICROPROGRAMACIÓN: UN EJEMPLO ..................152 Direccionamiento por medio de pilas.....................................................................................................................................................................................................................................................................................................................................................................................129 CONCLUSIÓN.......................................................................................................................................................................................................................................164 Instrucciones de llamada a procedimiento ..............................................................................................................................157 Ejemplos de direccionamiento.....144 FORMATOS DE INSTRUCCIÓN....................................................................................179 249 ...........................................................123 Memoria caché ..........................................................................................................149 Direccionamiento inmediato.......................................157 Algoritmo.......161 Operaciones unarias ..............................................................110 El lenguaje micro ensamblador ..........................136 INTRODUCCIÓN..................................................161 Operaciones binarias .........................153 Notación polaca inversa.............................122 Mejora del rendimiento ........115 Nanoprogramación ....................................................................................................................................................................................................................................................................................................................147 Ejemplos de formatos de instrucciones............................................................................................................................................................................114 EL DISEÑO DEL NIVEL DE MICROPROGRAMACIÓN .............157 Algoritmo........................................................................................................................................................162 Comparaciones y Saltos Condicionales...........................................................................173 Procedimientos ....................................................................................................................................................................................................................................150 Direccionamiento de registros....................................................................................................................................................135 INDICE........................................................................................111 Observaciones sobre el microprograma ........................168 Flujo De Control ......................160 Direccionamiento en la PDP-11.........................................................................160 Instrucciones de movimiento de datos .....................................El juego de macroinstrucciones ..........................................................................................

.....................238 MODOS DE DIRECCIONAMIENTO .............................................................................................................................239 Modo de direccionamiento directo ..........................200 EJECUCIÓN DE LAS INSTRUCCIONES ........................215 INDICE.......................................................................................202 LA UNIDAD ARITMÉTICA Y LÓGICA ....................................................................188 INDICE.....................................................183 ACCIONES DE SOFTWARE ..........................................211 CONCLUSIÓN..............................................................................................................................227 PARáMETROS y CARACTERíSTICAS MáS IMPORTANTES DE UNA MEMORIA 228 Capacidad..........................................................................................................................Desvios ........................................................................................211 INTERRUPCIONES .................................................................................189 INTRODUCCIÓN.......209 EL CANAL.................................................................................................................................207 FASE DE BÚSQUEDA O ALMACENAMIENTO DEL OPERANDO ...............................................197 ESTRUCTURA GENERAL...............239 Modo de direccionamiento indirecto ......................................................................225 ORDENAMIENTO DE BYTES ..............207 Caso de almacenamiento del operando: ......................................................226 CÓDIGOS CORRECTORES DE ERRORES ....................................................233 Memorias pasivas............................................................... seguido de procesamiento: ..............................................................................................................................207 Caso de búsqueda del operando...............................................229 Memorias de acceso aleatorio (RAM = Ramdom Acess Memory) ......................................................................................................................................................201 ORGANIZACIÓN DE LA CPU .....................187 BOLILLA III: ARQUITECTURA DEL PROCESADOR............................................183 ACCIONES DE HARDWARE ..........................................210 LAS UNIDADES PERIFÉRICAS ......................................................224 DIRECCIONES DE MEMORIA ...........................................................228 Formas de acceder a las posiciones de memoria ................................................................................................................................................208 FASE DE PREPARACIÓN DE LA SIGUIENTE INSTRUCCIÓN .......206 FASE DE BÚSQUEDA DE LA INSTRUCCIÓN ....................216 INTRODUCCIÓN.........204 LA UNIDAD DE CONTROL.......................................................................................................231 Pastillas de memoria en paralelo .................................................................................................................................................197 Microprocesadores..................................................................................................................................197 DESCRIPCIÓN DE LOS COMPONENTES DE UN PROCESADOR ...................................................................................................................................................................................................................182 Interrupciones ................................................240 250 .........................................................209 INSTRUCCIÓN DE RUPTURA DE SECUENCIA ............................................................................................229 Estructura de una RAM semiconductora .......................................................................214 BOLILLA IV: MEMORIA.................235 Memorias de acceso serie ....................................184 CONCLUSIÓN...........................................................................................................................................................................................................................................................................................................................................227 CLASIFICACIÓN Y ORGANIZACIÓN DE LAS MEMORIAS ...................................223 MEMoRia .......................................................................................................................................................................236 Memorias asociativas .................................................................................................................................................................................................................................................196 ARQUITECTURA DEL PROCESADOR.......................................................................

....................242 Modo de direccionamiento por registro indirecto ............................244 CONCLUSIÓN......................................................................................................................284 INTRODUCCIÓN..................................................................................................................................................... .....................................................283 INDICE..................................................................296 Ratones Inalámbricos............................................................................................................................................................................ lenguaje ensamblador y los lenguajes de alto nivel ................258 Afinación de programas ....................................................296 BOLAS GIRATORIAS: ...................................................................................................................255 INTRODUCCIÓN AL LENGUAJE ENSAMBLADOR ......................................................................................................................................................................................................................................296 251 ........269 Definición...................................................274 Estructura de un módulo objeto ............................................................................................246 BOLILLA V: EL NIVEL DEL LENGUAJE ENSAMBLADOR.........................................292 RESEÑA HISTÓRICA..257 Comparación entre el...........282 BOLILLA VI (Parte 1): PERIFÉRICOS................................................................................................................293 TECLADO: .................................................................................................................................................................................................................................................................................................................................................................262 La segunda pasada .............................292 PERlFERICOS DE ENTRADA: ....................................................................................................240 Modo de direccionamiento indexado ..............................................................246 INDICE....254 EL NIVEL DEL LENGUAJE ENSAMBLADOR..........................................................................................................267 MACrOS ...272 Tareas realizadas por el programa ensamblador .......................................................................................................................................................292 INTRODUCCIóN .....................................................................................................................................276 Tiempo de ligadura y reubicación dinámica ...............247 INTRODUCCIÓN.................................................................................................................................................................295 Tipos de ratones............294 MOUSE (RATON) ............................................................................................................296 PANTALLAS TÁCTILES: .....................................................................................................................................................................................261 Ensambladores de dos pasadas ......259 EL PROCESO DE ENSAMBLAJE ...........................................................................................271 MONTAJE (LINKING) y CARGA ........................... llamada y expansión de una macro .............................................................................................................................................................................................Modo de direccionamiento relativo ..........................................................................................................................................................................261 La primera pasada ............................................................................................................243 Otros modos de direccionamiento ..............................................................................................................................................................................................293 Cuidados y advertencias..............256 Formato de una sentencia en lenguaje ensamblador ..266 La tabla de símbolos ..................277 Enlace dinámico .................................................................................256 ¿Qué es un lenguaje ensamblador? ...............................279 CONCLUSIÓN.................................................................................................................................291 PERIFÉRICOS.........................................................................................................................................................296 Ratones Estacionarios.......269 Macros con parámetros .............271 Implementación de macros en un ensamblador .....................................................................................................245 .......................

................................304 PANTALLAS DE SISTEMAINFORMATICO (Monitor): .....298 LECTORES DE TARJETAS MAGNETICAS.......................................................306 Impresoras de inyección de tinta: .300 2................................................................................................................................. ..............................304 Impresoras.......................................297 Escáner de Rodillo:..............................................................................................................................................................305 Impresoras de agujas: ...........................................................................................................................................................................................................................306 Impresoras térmicas: .................................................................................................................................................................................................................298 LAPIZ OPTICO: ...................................................................................................................................................................................................................................................................309 BOLILLA VI (PARTE 2): TÉCNICAS Y DISPOSITIVOS DE ENTRADA SALIDA....................................................297 Ventajas: .................................297 Escáner de Sobremesa: ..............296 Profundidad de color...........................................................297 Ventaja: ................................................................................297 Escáner de mano: ......................................................................311 252 .......................................................................................297 LECTORES DE CODIGO DE BARRA................................ ..........................................................303 PERIFERICOS DE SALIDA: ...........307 Aspectos técnicos....................................................................................................................................... Disco flexible de 5 1/4 pulgadas ..................................305 Impresora de Bola: .....................................306 Impresoras Láser de color: ........................................................................................................................................................................................................................................................303 La compresión MPEG-2: .................................................................302 DVD:...................307 CONCLUSIóN..........................................................297 Desventajas: ....................................................................................................................................................................................................................................................................................................................................................300 Disco duro....302 Prestaciones del DVD: ...............298 PERIFERICOS DE ALMACENAMIENTO: ..................................300 Discos opticos: .........299 Discos.................................................300 Facilidad de manejo y almacenamiento......................................... Disco flexible de 3 1/2pulgadas .......................................................................................................297 Calibración....................................................................................306 Impresoras sin cinta entintadas: .................................................................................................310 INDICE......................................................................................................................................................................................................................................................299 Fiabilidad del soporte..300 1....... .......................303 El futuro del DVD: ......................................................................................................................301 Cintas magneticas: ......................................................................................................................................................297 Desventajas: ...........................................................................................................305 Impresoras con cinta entintada: ...........................................................................................................................306 Impresoras láser: .............................................................................................................................................ESCANER ............................................................................................................................................................................................................................................................................................................................................299 Discos flexibles..............................306 PERIFERICOS DE COMUNICACION....................297 TABLETA DIGITALIZADORA.............................................................296 Tipos de escáner:......................307 MODEM........................................308 CONCLUSIÓN.............................................307 Como usar la Tecnología 56K ......................................................303 El disco por dentro: .......................................................................................................

..................344 253 ..........................339 GLOSARIO.........................................................................................................................331 Terminales.....................................................................................323 Impresoras.........................342 CONCLUSIÓN FINAL.....................................334 Técnicas de entrada/salida (input/output)..........................................334 Otros periféricos.......................................................................332 Procesos de comunicación para la transmisión de datos a distancia..............................................................323 Plotter........................................................................................................................................................................................................................................................................................................................................................................319 Dispositivos de soporte magnético......................................................................................330 La pantalla........................................INTRODUCCIÓN..........................................................................................................................................................................................................................................................................................................................................................................338 Transferencia DMA ...319 Dispositivos de fichas y de banda perforada....................................................340 CONCLUSIÓN...............................................336 Interrupciones (interrupts) ........................318 TECNICAS Y DISPOSITIVOS DE ENTRADA / SALIDA (Input / Ouput).........................................343 BIBLIOGRAFÍA .................................................................................................................................................................................................................335 Polling (interrogatorio de tráfico) ......................................................

INTRODUCCIÓN 254 .

Dicho nivel difiere considerablemente de los niveles de microprogramación. y la interpretación por otro. Es importante darse cuenta de la diferencia entre la traducción. el programa original. pero la traducción suele producir programas más rápidos. por un lado. Si contáramos con un procesador que ejecutara directamente los programas escritos en el lenguaje fuente. y no se cuenta con uno para el fuente. 5 y 6 estudiamos tres niveles. El lenguaje en que está escrito el programa original se llama lenguaje fuente y al que se convierte se llama lenguaje objeto. llamado programa objeto o módulo objeto. Generación de un programa equivalente en lenguaje objeto. el sistema operativo y el microprograma. escrito en lenguaje fuente. debido a que se implementa por traducción y no por interpretación. no se ejecuta directamente. el de máquina convencional y el de máquina del sistema operativo. en el que no hay procesador. definen niveles. en tiempo de ejecución. los cuales están presentes en la mayoría de las computadoras actuales. En la traducción. Este capítulo trata fundamentalmente de un cuarto nivel que también está presente en casi todas las computadoras modernas: el nivel del lenguaje ensamblador. Es importante recalcar que. Los programas que convierten un programa escrito de un lenguaje a otro lenguaje distinto se llaman traductores. Ambos lenguajes. no habría ninguna necesidad de traducirlos al lenguaje objeto. de máquina convencional y del sistema operativo. Por tanto podemos fabricar un nuevo nivel. Marcelo Martinez 2003 EL NIVEL DEL LENGUAJE ENSAMBLADOR En los capítulos 4. la ejecución del programa traducido dará exactamente los mismos resultados que daría la ejecución del programa fuente si dispusiéramos de un procesador para él. La interpretación tiene la ventaja de que el programa suele ser más pequeño y de mayor flexibilidad. Ejecución del nuevo programa que se ha generado. otros autores hacen una mayor distinción entre niveles realizados por intérpretes en tiempo de ejecución y niveles realizados por traducción. que se ejecuta después de que se ha terminado la traducción. Cuando se está ejecutando el programa objeto. Toda traza del programa fuente original se ha desvanecido. el número de niveles presentes en tiempo de ejecución puede diferir del número de ellos presentes antes de la traducción. En la interpretación. Por tanto. Así. 2. En la traducción hay dos pasos bien definidos: 1. Lo que se hace es convertirlo en un programa equivalente. Si la traducción se hace correctamente. si traducimos primero los programas escritos para dicho nivel a un nivel objeto y luego ejecutamos los programas resultantes. No se genera primero un programa equivalente. sólo hay tres niveles en acción: el de microprogramación.APUNTES DE CATEDRA CARRERA: Cátedra: Profesor: AÑO: LICENCIATURA EN ANALISIS DE SISTEMAS – INGENIERIA EN SISTEMAS Procesamiento De Datos I Lic. el fuente y el objeto. el segundo no comienza hasta que el primero ha terminado. aunque nosotros definamos un nivel por las instrucciones y construcciones lingüísticas que tienen a su disposición los programadores (y no por el método de implementación). La traducción se usa cuando se dispone de un procesador ( lo mismo da que sea físico o un intérprete) para el lenguaje objeto. 255 . hay sólo un paso: la ejecución del programa fuente original. en cambio. sólo pueden encontrarse en la memoria de la computadora tres programas: el programa objeto del usuario. Estos dos pasos no tienen lugar simultáneamente.

si la máquina tiene un indicador de desbordamiento. registros y otras cosas por el estilo no están disponibles para que el programador en lenguaje de alto nivel las use. los valores numéricos. uno en Pascal no puede hacerlo directamente. MUL. resulta de gran importancia práctica para muchas aplicaciones. o consultar constantemente. pero pocos pueden recordar que las instrucciones máquina (para la PDP-ll) son 24576. entonces un programa de n líneas escrito en ensamblador produciría un programa en lenguaje máquina que ocuparía n palabras. el programador en lenguaje máquina debe recordar. según la relación que haya entre el lenguaje fuente y el objeto. La habilidad de poder mover software de una maquina a otra. ADD. el traductor se llama compilador. En consecuencia. mientras que un programa escrito en un lenguaje de alto nivel puede.INTRODUCCIÓN AL LENGUAJE ENSAMBLADOR Los traductores se pueden dividir a grandes rasgos en dos grupos. MUL y DIV. La razón por la que se usa el lenguaje ensamblador en lugar de programar el lenguaje máquina (octal o hexadecimal) consiste en que es mucho más fácil programar en ensamblador. pero muchas instrucciones.. Es conveniente hacer explícita una diferencia final. la sustracción.28672 y 29184. Los mismos comentarios se aplican a las direcciones. Por ejemplo. La mayoría de la gente puede recordar que las abreviaturas para la adición. Si cada línea de un programa en ensamblador contuviera una sentencia ensamblador y si cada palabra de máquina contuviera una instrucción de máquina. pero uno en lenguaje de alto nivel no puede hacerlo. Cuando el lenguaje fuente es. pero no el programador en un lenguaje de alto nivel. ya que el ensamblador los traduce a las instrucciones máquina. y el lenguaje objeto es un lenguaje de máquina numérico o una representación simbólica de uno de ellos. nadie programa hoy día en lenguaje máquina. Cuando el lenguaje fuente es un lenguaje de alto nivel como el C o Pascal. en esencia. El programador en lenguaje ensamblador puede dar nombres simbólicos a las posiciones de memoria y dejarle al ensamblador la tarea de suministrar los valores numéricos correctos.. una representación simbólica de un lenguaje numérico de máquina. que los distinguen de los lenguajes de alto nivel. el programa en lenguaje ensamblador puede examinarlo. En resumen. El programador en lenguaje máquina debe trabajar siempre con los valores numéricos de las direcciones. DIV. El programador en ensamblador tiene acceso a todos los recursos e instrucciones de la máquina ala que se aplica. la multiplicación y la división son ADD. SUB. ¿Qué es un lenguaje ensamblador? Un lenguaje ensamblador puro es aquel en que cada sentencia produce exactamente una instrucción máquina. además de la Correspondencia uno a uno entre las sentencias en ensamblador y las instrucciones máquina. 256 . Si hay conmutadores en la consola del operador. en potencia.57344. Por el contrario. el traductor se llama ensamblador y el lenguaje fuente se llama lenguaje ensamblador. SUB. con la sintaxis de un lenguaje de alto nivel pero con las posibilidades de acceso a la máquina de un lenguaje ensamblador. antes de que se inventaran los ensambladores. Tal programa puede ejecutar todo el juego de instrucciones de la máquina sobre la que se aplica. un programa en ensamblador puede leer su estado. Es muy diferente usar nombres y direcciones simbólicas que hacerlo en binario u octal. la cual consiste en que un programa en lenguaje ensamblador sólo puede correr en una familia de máquinas.. El programador en lenguaje ensamblador sólo tiene que recordar los nombres simbólicos. Los lenguajes para la programación de sistemas suelen ser un híbrido entre ambos tipos. correr en muchas máquinas. aunque se hacía hace años. Los lenguajes ensambladores tienen otra propiedad. En otras palabras. hay una correspondencia biunívoca entre las instrucciones de máquina y las sentencias del programa en ensamblador. todo lo que puede hacerse en lenguaje máquina puede hacerse también en ensamblador.

K N. Las sentencias que están por debajo de los puntos no son representaciones simbólicas de instrucciones de máquina. Esta diferencia no tiene nada de particular. (a) En un 80386. . EAX .L ADD.Guarda I en EAX . campo de operandos y campo de comentarios.Carga I en DO . 4 4 4 4 byte byte byte byte V V V V inicial inicial inicial inicial 2 3 4 0 Las instrucciones en ensamblador tienen cuatro partes: campo de etiqueta.L .Reserva .Reserva . .Suma K a DO . . DC y DD) para permitir que los datos allí almacenados sean accesibles por medio de un nombre simbólico. Nótese que el lenguaje ensamblador de Motorola requiere que se pongan dos puntos después de cada etiqueta. 7-1.Almacena I + J + K en N 2 3 4 0 .L DC.Reserva .L DC. sino órdenes al ensamblador para que reserve memoria para las variables I. Campo etiqueta Campo operación Campo operando Campo de comentario FORMULL: MOV ADD ADD MOV . En ambos casos la cuenta lo realizan las instrucciones colocadas arriba de los puntos. Si una sentencia tiene una etiqueta.Reserva . . los cuales realizan el cálculo N = I + J + K. N . J.g.Suma K a EAX . el lenguaje ensamblador de lntel habría usado los dos puntos y el de Motorola no. K y N.DO K. En la figura 7-1 se presentan fragmentos de programas en lenguaje ensamblador para el 80386 y el 68030.Suma J a EAX . J EAX.Reserva (b) Fig. campo de operación.mas que aparecen en la figura 7-1(b).Formato de una sentencia en lenguaje ensamblador Aunque la estructura de una sentencia de un lenguaje ensamblador refleja muy de cerca la estructura de la instrucción de máquina que representa.Almacena I + J + K en N 2 3 4 0 . También se requieren en las seudo instrucciones de asignación de memoria (v . No hay nada en la arquitectura subyacente que sugiera una u otra elección 257 . mientras que en el de lntel no es necesario.L DC. (b) En un 68030.DO J.L ADD. Las sentencias que son Órdenes al ensamblador se llaman seudo-instrucciones. ésta comienza (por lo general) en la columna 1.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. mis. Si hubieran trabajado para la otra compañía.Reserva .Reserva . . I EAX. DD DD DD DD EAX.L I. que sirven para dar nombres simbólicos a las direcciones. El diseñador de cada ensamblador es libre de elegir cualquier convención que desee en esta área. sólo que los diseñadores de cada ensamblador tuvieron gustos diferentes. En la figura 7-1(a) se muestran cinco etiquetas: FORMUL.Suma J a DO . los lenguajes ensambladores para máquinas y niveles diferentes se parecen lo suficiente como para permitir una explicación detallada del lenguaje ensamblador en general. se necesitan en sentencias ejecutables para que se pueda saltar a ellas. Las etiquetas.DO DO. DC.L MOVE. I. Cálculo de la fórmula N = I + J + K. K y N. J.

El campo de comentarios ofrece a los programadores oportunidad de explicar el funcionamiento del programa en beneficio de otros programadores. lntel escogió DD (Define Da. Aunque fue acertado en un tiempo. Comparación entre el. par que lo usen o modifiquen posteriormente. sólo es cuestión de gustos. deberían escribirse en ensamblador por razones de eficiencia. Una vez más. 2-2 como ejemplo de ello). En el caso de Intel eligieron MOV. Un programa en lenguaje ensamblador sin este tipo de documentación resulta casi incomprensible para cualquier programador. hacer frente a situaciones muy criticas en tiempo. Los resultados de ambos proyectos pueden compararse en forma elegante tenemos en cuenta que se tardó aproximadamente el mismo tiempo en ponerlos a funcionar.ría del diseño de lenguajes. la programación del microprocesador que controla una lavador debido al gran número de unidades vendidas. Ambos sistemas operativos se empezaron por la misma época ( a mediados de la década de los sesenta) y tienen aproximadamente mismo tamaño (enorme).¡os) y Motorola le nombró DC (Define Constante). El uso de nombres largos y bien escogidos hace los programas mucho más legibles e inteligibles por otras personas (véase fig. mientras que el TSS/67 se escribió totalmente en ensamblador .dores escogieron soluciones distintas. ya no lo es más. de manera que EAX se utiliza para mover elementos de 32 bits. está claro que habrá pocas aplicaciones en que se puedan demostrar las ventajas que se ganarían usando el lenguaje ensamblador. Un gran sistema operativo como el MUL TICS es una prueba de fuego para un lenguaje de alto nivel. aunque destacan la naturaleza arbitra. El campo de operandos de una instrucción de suma de enteros dice qué s va a sumar a qué. El campo de comentarios sólo es para el consumo humano. MUL TICS fue escrito por 50 personas con un costo estimado de lO millones de dólares. cuánta memoria hay que reservar). no tiene ningún efecto en el proceso c ensamble o en el programa generado. la mayoría de los lenguajes de alto nivel permiten usar nombres de longitud arbitraria. Por el contrario. ¿Cómo sabe el ensamblador qué longitud usar? De nueva cuenta los dos diseña. El campo de operandos de una instrucción de salto dice dónde hay que saltar . por ejemplo. lntel dio a sus registros diferentes nombres. La mayor parte del MUL TICS (95OJo) se escribió e un lenguaje de alto nivel (el PL/l). lenguaje ensamblador y los lenguajes de alto nivel Existe un mito muy popular según el cual los programas que se usan mucho( especialmente los grandes. La selección de un nombre apropiado es sólo cuestión de gusto. Una excepción sería. AX para 16 bits y AL o AH para 8 bits. Sin embargo. por eso es crucial obtener. Un sistema operativo debe controlar todos los dispositivos de E/S. En contraste. Ambas formas son válidas. .El campo de operandos de una seudo instrucción depende de ella (por ejemplo. palabras y operandos largos. buenas prestaciones. Es instructivo con parar el sistema MUL TICS con el sistema de tiempo compartido de la 360/6' denominado TSS/67.W para palabras y. . manipular grandes bases de datos y hacer muchas otras tareas. El campo de operación tiene una abreviatura simbólica del código de operación (si la sentencia es una representación simbólica de una instrucción máquina) o una seudo instrucción (si la sentencia es una orden al ensamblador). Los dos ensambladores difieren también en el nombre de la seudo instrucción que se usa para reservar espacio para datos.Una característica negativa de algunos ensambladores es que el número de caracteres de sus etiquetas está limitado a seis u ocho. mientras que Motorola prefirió MOVE. Motorola decidió agregar a cada código de operación un sufijo. Tanto el 80386 como el 68030 permiten bytes. El campo de operandos de una sentencia en ensamblador se usa para especificar las direcciones y registros que la instrucción de máquina usa como operar dos. mientras el TSS/67 necesitó 300 personas su costo estimado fue de 50 millones de 258 . por lo que diferentes diseñadores de lenguaje ensamblador a menudo hacen distintas elecciones.B para bytes. Si los lenguajes de alto nivel pueden pasar esta prueba tan critica. con frecuencia hasta para el propio autor.L para palabras largas.

con ajuste y sin él. ya que un programador inteligente puede mejorar a un buen compilador por un factor de 3. el programa de prueba se compilaría en 33 segundos. Esta situación se ilustra en la figura 7-2. asimilar semejante volumen es poca cosa en comparación con la lectura de 30 000 páginas de ensamblador. Con base en la observación anterior.tentar comprender determinados procedimientos. el proyecto se encontraría en una situación muy embarazosa. Varios estudios han mostrado que el número de líneas de código depurado que puede producir un programador al mes en un proyecto que dure varios años es de unas 100 a 200 líneas. que tienen en promedio 4 páginas de PL/l. Otra razón de peso en contra de la programación en lenguaje ensamblador es que casi no se entiende un programa escrito por otra persona. Si los programadores nuevos no entendieran los programas de sus predecesores. comparación entre la programación en ensamblador y en lenguaje orientado a problemas. Aunque nadie intentará nunca leer el listado del MUL TICS completo. el programa se escribe en un lenguaje de alto nivel. un porcentaje muy bajo del código total es el encargado de un gran porcentaje del tiempo de ejecución (Dardner y Heller. se puede tener otro enfoque. Luego se hace una serie de mediciones para establecer las partes del programa que ocuparán la mayor parte del tiempo de ejecución. en la mayoría de los programas. 1969). Un listado completo del MUL TICS en PL/l tiene unas 3000 páginas. cambie 15 % del personal al año.dólares (Graham. 7-2. la productividad de un programador PL/l será 5 o 10 veces mayor que la de uno que programe en ensamblador. Sólo se puede esperar un rendimiento más alto en programas pequeños. Como una sentencia en PL/l equivale a 5 o lO sentencias en ensamblador.Es corriente que el 1 % del programa se ocupe del 50 % del tiempo de ejecución y que el 10 % del programa lo sea del 90 % de dicho tiempo. algo bastante difícil de digerir en una tarde. Sin embargo. Años-hombre necesarios para producir el programa 50 10 Tiempo de ejecución del programa en segundos 33 100 Lenguaje ensamblador Lenguaje orientado a problemas Método mixto antes de pulir Parte critica 10% 1 90 Resto 90% 9 10 Total 10 100 Método mixto después de pulir Parte critica 10% 6 30 Resto 90% 9 10 Total 15 40 Fig. en proyectos largos. debido ala baja productividad de los programadores en ensamblador. Sin embargo. Una situación corriente en un compilador es cuando la búsqueda en la tabla de símbolos se lleva más tiempo que todo el resto de la compilación. Salta a la vista que el uso del PL/ 1 ahorró millones de dólares al proyecto MUL TICS. Afinación de programas Ciertos estudios han mostrado que. Supongamos que se necesitan lO años-hombre para escribir cierto compilador grande en un lenguaje de alto nivel. 1970) . 1970). Estas mediciones incluirán normalmente el uso del reloj del sistema para 259 . y que dicho compilador necesita 100 segundos para compilar cierto programa de prueba. Escribir el compilador en ensamblador completamente requeriría de 50 a 100 años-hombre. de que sólo una pequeña parte del código es la responsable de la mayor parte del tiempo de ejecución. Primero. después de 5 años. sólo unos pocos de los programadores originales permanecerán aún en este trabajo. Esto mismo es válido para cualquier otro lenguaje de alto nivel. En consecuencia. independientemente del lenguaje de programación que use (Corbató. la gente puede in. Es corriente que.

de manera que la nueva versión era 26. Si realmente se necesitara sólo 1 año-hombre. por lo que es importante estar en condiciones de escribir un buen código en ensamblador cuando sea absolutamente necesario. ya que la escritura de un procedimiento en ensamblador a partir de uno escrito en lenguaje de alto nivel y ya depurado es. Graham (1970) nos cuenta que cierto procedimiento en PL/1 de MUL TICS se rescribió en 3 meses. puede ver aspectos del problema que permitan verdaderas mejoras. En otras palabras. La primera es que el éxito o fracaso de un proyecto importante puede depender de la consecución de un factor de mejora de 5 o 10 en algún procedimiento crítico. Además. mucho más fácil que escribir el mismo procedimiento en ensamblador desde el principio. un disco duro). debido a la falta de memoria (las calculadoras de bolsillo tienen una CPU. La tercera razón es que un compilador debe producir una salida que utilice el ensamblador. uno se pregunta maravillado: "¿Por qué molestarse estudiando los ensambladores si la programación en ensamblador tiene tantos y tan serios inconvenientes?" Al menos existen tres razones. pero pocas tienen un megabyte de memoria y. por ello es mucho más fácil que se les ocurran ideas que lleven a algoritmos totalmente diferentes y mucho mejores. Por ejemplo. la razón de costos entre el método mixto y el de ensamblador puro sería mayor de 4 a 1 en favor del método mixto. en ocasiones. El 10 % critico se puede mejorar rescribiéndolo en ensamblador. pero tiene un precio de más del triple. veces más chica y 50 veces más rápida que la original. o realizar el proceso de ensamble por sí mismo. Esto muestra que los programadores en lenguaje de alto nivel tienen una visión global de lo que están haciendo. a veces. De ahí que resulte esencial entender el lenguaje ensamblador para comprender cómo funcionan los compiladores. Después de esta introducción. 260 . la ventaja del método mixto es realmente mayor que la indicada. la estimación de 5 años.hombre para rescribir los procedimientos críticos es en extremo conservadora. Un programador que use un lenguaje de alto nivel no está sumergido en una inmensidad de bits y. pero su tiempo de ejecución se reduce de 90 a 30 segundos.calcular la cantidad de tiempo que se gasta en cada procedimiento. Corbató (1969) describe un procedimiento en PL/l para el manejo de un tambor que se redujo de 50000 a 10000 palabras de código. Este proceso se llama afinación y se ilustra en la figura 72. y. El último es 20 % más rápido. la cuenta del número de veces que se ejecuta cada iteración y otros pasos similares. así como otro que se hizo 20 veces más pequeño y 40 veces más rápido con 2 meses de trabajo. Aquí se necesitan 5 años-hombre más para rescribir los procedimientos críticos. 90 se gastan en el 10 % critico y lO en el 90 % restante del programa. la programación en ensamblador es la única alternativa. supongamos que el 10 % del programa ocupa el 90 % del tiempo de ejecución. que normalmente se ocupan de hacer malabarismos con las instrucciones para ahorrarse unos pocos microsegundos. La segunda es que. menos aún. 7-2). con una mejora en la velocidad de un factor 8 en cuatro meses. compilado en menos de un mes y un programa de control de E/S que se redujo de 65000 a 30 000 palabras de código compilado. de hecho. Esta situación no ocurre con frecuencia con los programadores en ensamblador. Esto significa que para un trabajo de 100 segundos. Resulta instructivo comparar el método mixto entre lenguajes de alto nivel y ensamblador con la versión en lenguaje ensamblador puro (fig.

EL PROCESO DE ENSAMBLAJE En las siguientes secciones describiremos brevemente cómo funciona un ensamblador. 261 . es decir. Esta dificultad se llama referencia adelantada. parece natural tener un ensamblador que lea una sentencia. El ensamblador no puede ensamblar esta instrucción hasta que conozca la dirección de la sentencia L. la similitud del proceso de ensamblaje en las diferentes máquinas nos permite describirlo en términos generales. lo que impide que el ensamblador encuentre la dirección sin leer primero casi todo el programa. la traduzca a lenguaje de máquina y escriba el código de máquina generado en un archivo y la porción del listado correspondiente. Por desgracia. este método no funciona. porque el símbolo L se ha usado antes de que se haya definido. en otro. El proceso se repetiría hasta que todo el programa se haya traducido. Ensambladores de dos pasadas Debido a que un programa en ensamblador consta de una serie de sentencias de una línea. si la hay. Considérese la situación en la que la primera sentencia sea un salto a L. Aunque cada máquina tiene diferente lenguaje ensamblador. se ha hecho referencia aun símbolo cuya definición aparecerá más tarde. La sentencia L puede estar cerca del fin del programa.

el ensamblador de dos pasadas colecciona todas las definiciones de símbolos. Si al ensamblaje le sigue una carga. ensamblarla y obtener una salida. Este método presenta un grado de complejidad considerablemente mayor y tiene dificultades para imprimir un listado. I EAX. SUSANA: MOV MOV MOV IMUL IMUL IMUL ADD ADD MOV JMP Campo operandos EAX. Cuando se encuentra una sentencia que no puede ser ensamblada por contener una referencia adelantada. Un símbolo es una etiqueta o un valor al que se le asigna un nombre simbólico por medio de una seudo-instrucción como ESPACIO EQU 100 Al asignar un valor a un símbolo que está en el campo de etiqueta de una instrucción. con la indicación de que todavía no ha sido ensamblada. se introduce la sentencia con la referencia adelantada en una tabla. Campo Campo etiqueta operación . Este método es conceptualmente sencillo. a pesar de todo. el ensamblador mantiene una variable durante el ensamblaje llamada contador de posiciones de instrucción o ILC. . la mayoría de los ensambladores son de dos pasadas. incluyendo las etiquetas de las sentencias. ya no existe el problema de las referencias adelantadas y puede leerse cada sentencia. ECX N. La primera pasada La función principal de la primera pasada es construir lo que se llama tabla de símbolos. no es necesario dar el ejemplo para Motorola. como la diferencia entre ambos no es muy importante. El problema del ensamblador de una pasada estriba en que si hay muchas sentencias que contengan referencias adelantadas. Por estas razones. Este último método genera la salida en distinto orden que en el de las dos pasadas. . EBX EAX.. EBX ECX. en vez de hacerlo. ECX EAX. como se muestra en la figura 7-3. no se genera ninguna salida. La primera es que el ensamblador podría leer el programa fuente dos veces. de modo que todas las sentencias de dicha tabla pueden ensamblarse. Por tanto. Este ejemplo es para el 80386. el cargador puede reordenar las piezas de la salida para dejarlas en el orden correcto. Al final del ensamblaje. EAX EBX. incluyendo el código objeto producido. y las almacena en una tabla. Para conocer la dirección en tiempo de ejecución de la instrucción que se ensambla. J EAX. K EAX. aunque requiere una pasada adicional sobre la entrada. Esta variable se pone a O al comienzo de la primera pasada y se le añade la longitud de cada una de las instrucciones que se procesan. donde se guardan los valores de todos los símbolos. el ensamblador debe conocer la dirección que tendrá dicha instrucción cuando se ejecute el programa.Las referencias adelantadas pueden tratarse de dos maneras. El segundo método consiste en intentar hacer el ensamblaje en una pasada. todos los símbolos habrán sido definidos. En la pasada 1. esta objeción no tiene importancia. ya se conocen los valores de todos los símbolos. y todo traductor que lea el programa de entrada dos veces se llama un traductor de dos pasadas. Cada lectura del programa fuente se llama una pasada. la tabla que debe contener todas las sentencias no ensambladas puede hacerse demasiado grande y no caber en memoria. En el momento en que empieza la segunda pasada. EAX YA Campo comentarios Longitud ILC antes instrucción sentencia EAX = I 5 EBX = j 6 ECX = K 6 EAX = I * I 2 EBX = J * J 3 ECX = K * K 3 EAX = I * I + J * J 2 EAX = I * I + J * J + K * K 2 N=I*I+J*J+K*K 5 SALTAR A YA 5 100 105 111 117 119 122 125 127 129 134 262 .

La primera pasada del ensamblador debe construir una tabla con todas las literales que utiliza el programa. algunas veces. Además de ahorrar al programador un poco de escritura. sus ensambladores no proporcionan literales. Tabla de símbolos para de la figura 7-3. En caso de ser necesaria. sin embargo. como se muestra en la figura 7-4. otra información. Símbolo Valor Otra información SUSANA: 100 MARIA: 111 MARISA: 125 CARMEN: 129 . Algunos ensambladores permiten que el programador escriba instrucciones con direccionamiento inmediato. Longitud del campo de datos asociado al símbolo. Se les llama literales a las constantes para las cuales el ensamblador reserva memoria automática. La figura 7-5 muestra parte de una tabla de códigos de operación. . 7-3. . bien usándolos como etiquetas. Fig. 2. Como las dos familias utilizadas en uestros ejemplos tienen instrucciones inmediatas. Código de Primer Segundo Código de operación Longitud de Clase de operación operando operando hexadecimal la instrucción instrucciones AAA --37 1 6 263 . Bits de reubicación. las instrucciones inmediatas son muy comunes. Si el símbolo ha de ser accesible o no a un procedimiento externo. Tales instrucciones con operando "seudoinmediato" se tratan como sigue. La de símbolos tiene. su valor numérico. su longitud y un número de clase que divide los códigos de operación en grupos. Esta información adicional puede incluir: 1. El ensamblador reserva memoria al final del programa para el operando inmediato y genera una instrucción que hace referencia a ella. . (¿Cambia el valor de símbolo si el programa se carga en una dirección distinta a la que se supuso ensamblador?) 3. pero antes eran poco usuales. . En esta forma el programador evita escribir de manera explícita una instrucción DC para ubicar una palabra con un valor inicial de 5. En la mayoría de los ensambladores. la IBM 370 no tiene instrucciones inmediatas. El Contador de Posiciones de Instrucciones (ILC) va tomando el valor de la instrucción donde se cargará la instrucción en memoria. . Por ejemplo. la primera pasada utiliza por lo menos dos tablas: la tabla de símbolos y la de códigos de operación. EQU en el 370). conforme al número y tipo de operandos. Cada elemento contiene el código de operación simbólico. 7-4. Hoy en día. En este ejemplo.Fig. . aunque no exista ninguna instrucción correspondiente en la máquina real. Cada elemento de la tabla de símbolos contiene el símbolo (o un apuntador a él). Los símbolos se definen. el programa La tabla de los códigos de operación contiene un elemento por cada código de operación simbólico (nemotécnico) del lenguaje ensamblador. las sentencias anteriores a SUSANA ocupan 100 byte. su valor numérico y. = F'5' Para cargar el registro 14 con una palabra completa que tenga un constante de valor 5. . . un elemento para cada símbolo. bien por definición explícita (por ejemplo. las literales hacen más legibles los programas al hacer que el valor de la constante aparezca en la instrucción fuente. se usa también la tabla de literales. los programadores pueden escribir: L 14. Es muy probable que el uso extendido de literales haya hecho ver a los diseñadores que el direccionamiento inmediato era una buena idea.

la figura 7-6 representa un esbozo de la primera pasada que. considérese al código de operación ADD. (En la figura no se muestran constantes que pueden expresarse en 8 o 16 bits y que utilizan diferentes códigos de operación. Los nombres de los procedimientos se han elegido de manera que den una idea más o menos precisa de lo que hacen. . aunque no está completo. . es bueno para empezar. . La figura 7-6 muestra un procedimiento que puede servir de base a la primera pasada de un ensamblador. Extractos de una tabla de códigos de operación en un ensamblador 80386 4 19 4 19 . . . Más importante aún. la instrucción tiene dos bytes con un código de operación O1H.ADD EAX IMMED32 05 5 ADD REG REG 01 2 AND EAX IMMED32 25 5 AND REG REG 21 2 . . 7-5. durante el ensamblaje se mantiene una tabla de éstas. El estilo de programación es digno de mención en sí mismo. . . 264 . se usa entonces el código de operación O5H y la instrucción tiene una longitud de 5 bytes. . Si se requiere de literales. La clase de instrucción (arbitraria) 19 se asignaría a todas las combinaciones código de operaciónoperandos que siguieran las mismas reglas y se procesarían en la misma forma que una instrucción ADD con dos registros como operandos. dicha tabla se ordena para eliminar las literales duplicadas. Después de la primera pasada. . Fig. . .) Si se usa ADD con dos registros como operandos. . . 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. creando nuevos elementos cada vez que se encuentra una. Si una instrucción ADD tiene al registro EAX como primer operando y una constante de 32 bits (INMED32) como segundo. Como ejemplo. . .

como MiraSiHay. sólo resultará afectado el procedimiento auxiliar y no se necesitaría hacer cambios directamente en el procedimiento PrimeraPasada. Si tienen que hacer algún cambio (por ejemplo. Si el ensamblador lo escribe un grupo de gente. En general. pueden ser más largos y llamar a otros procedimientos a su vez. además de la facilidad de programación. La estructuración de los programas de este modo tiene otras ventajas. debería entonces escribirse en un disco varias veces. Si la tabla se llenara.Etiqueta. debido a un cambio de sistema operativo). Todos los detalles (engorrosos) sobre la obtención de la entrada están escondidos dentro de LeeSiguienteSentencia. por supuesto. En algunos ensambladores. sino que dependerán del lenguaje que se ensambla. Por otra 265 . Otros procedimientos. como tipo 0 y tipo 1.Algunos de estos procedimientos son bastante cortos. las clases no serán dos. que entrega la etiqueta como cadena de caracteres si la hay y una cadena de espacios en blanco si no la hay. los procedimientos pueden repartirse entre sus miembros. las sentencias se almacenan en una tabla después de leídas.

Hay muchas técnicas con las que se evalúan expresiones aritméticas. La tabla de literales ordenados se examina para ver si hay duplicaciones que se puedan eliminar. Además. imprimir el listado del ensamblaje. 266 . La figura 7-7 muestra un procedimiento para efectuar la segunda pasada. se evalúa la expresión. debe producir cierta información necesaria para que el programa ligador enlace procedimientos ensamblados en momentos diferentes. posiblemente. El procedimiento EvalúaExpresión ha de convertir la expresión simbólica en un número binario. Encontrará primero los valores de los símbolos y las direcciones de los literales en las tablas respectivas. si el programa que está siendo ensamblado es tan corto como para caber en la tabla. se termina la primera pasada. La segunda pasada La función de la segunda pasada es generar el programa objeto y. la segunda pasada puede obtener sus entradas de ésta. Entonces se ordenan la tabla de símbolos y la de literales. Un método (descrito en el capítulo 5) consiste en convertir la expresión en notación polaca inversa y evaluarla mediante una pila. El procedimiento correspondiente a cada clase de instrucción sabe cuántos operandos puede tener esa clase y llama al procedimiento EvalúaExpresión ( que no se muestra) el número de veces apropiado. eliminando las operaciones de E/S en el disco.parte. Cuando se lee seudo instrucción END. si se necesita. Una vez que se conocen los valores numéricos.

El algoritmo funciona comparando el elemento central de la tabla con el símbolo. Lo mejor que puede hacer un ensamblador con una sentencia errónea es imprimir un mensaje de error e intentar continuar ensamblando. Hay varias formas de organizar la tabla de símbolos: veremos algunas de ellas en esta sección. Dado un símbolo. Se ha usado un símbolo no definido. es un conjunto de pares (símbolo. la rutina de la tabla de símbolos simplemente busca en forma lineal en la tabla hasta que lo encuentra. Si es igual. desde el punto de vista conceptual. Otro método de organizar la tabla de símbolos consiste en ordenar los símbolos y usar un algoritmo de búsqueda binaria para encontrarlos. Hasta ahora supusimos que el programa fuente no contiene ningún error . Suponiendo que el elemento central de la tabla no es igual al símbolo buscado. 3. Uso no permitido de registros (por ejemplo. Dado un símbolo que buscar. Evidentemente. Algunos de los errores mas comunes son: 1. pero es lento. valor). este método es mucho más rápido que la búsqueda lineal. El nombre del campo de código de operación no es un código de operación válido 4. No se le han suministrado al código de operación suficientes operandos 5. Se le han suministrado demasiados operandos al código de operación 6. hay que proseguir la búsqueda en la primera mitad de la tabla. Este método es fácil de programar. valdrá casi cualquier función de la entrada que dé 267 . se puede ensamblar la instrucción completa. la memoria asociativa debe producir el valor .Una vez que se conoce el valor numérico del código de operación y los valores de los operandos. la búsqueda en una tabla de n elementos requerirá unos log2 n intentos. Falta de sentencia END Los programadores son más ingeniosos cuando se ponen a buscar nuevas formas de cometer errores. con lo que se obtendrá la coincidencia o el cuarto de tabla donde seguir buscando. Poco puede hacerse para corregir la mayoría de los otros errores. Después de que se haya ajustado el CPI. La sentencia fuente original y el código objeto generado a partir de ella (en octal o en hexadecimal) se imprimen o se guardan para su impresión posterior . Cualquiera que haya escrito alguna vez un programa en cualquier lenguaje. el ensamblador acumula información sobre los símbolos y sus valores en la tabla de símbolos para que la segunda pasada los busque. Ahora se puede aplicar la búsqueda binaria a la mitad apropiada. salto a un registro) 8. al menos sabemos en qué mitad seguir buscando. ya que en promedio se ha de recorrer la mitad de la tabla. Al aplicar este algoritmo recursivamente. Todos los métodos intentan simular una memoria asociativa que. para luego escribirla en un disco cuando éste se llene. El método más sencillo de realización ( secuencial ) es organizar la tabla como un vector de pares. sabe hasta que punto es realista dicha suposición. Una de las funciones posibles será hacer el 0 EXCLUSIVO de todos los códigos ASCII de los caracteres (o de palabras que contengan grupos de caracteres) y luego tomar el resto al dividir este resultado intermedio entre k. Un método totalmente diferente de simular una memoria asociativa es la técnica denominada codificación por transformación. De hecho. Este método requiere una función de transformación que haga corresponder a cada símbolo un número entre 0 y k -1. puede extraerse la siguiente instrucción. pero requiere ordenar primero la tabla. y si está después en la segunda mitad. Muchas veces los errores debidos a símbolos indefinidos se deben a errores de escritura y un ensamblador muy inteligente podría intentar figurarse cuál de los símbolos definidos se parece más al indefinido y usarlo en su lugar. el primer elemento de los cuales es el símbolo (o apunta a él) y el segundo el valor (o un apuntador a él). Un número octal contiene un 8 o un 9 7. La tabla de símbolos Durante la primera pasada del proceso de ensamblaje. Se ha definido un símbolo mas de una vez. la que entonces se coloca en un buffer de salida. Si éste se localiza en orden alfabético por delante de aquél. 2. la búsqueda termina.

La codificación por transformación de los símbolos se ilustra en la figura 7-8. Con n/k símbolos y k elementos en la tabla.1. Los símbolos se pueden almacenar en una tabla de k elementos numerados de 0 a k . los símbolos se encontrarán con frecuencia en el primer elemento de la lista correspondiente. la media de las longitudes de las listas será n.mente igual a n. valor) cuyo símbolo se transforme en i se almacenarán en una lista encadenada a la que apunte el ejemplo i de la tabla. Todos los pares (símbolo. Ajustando k podremos reducir el tamaño de la tabla al costo de búsquedas más lentas.una distribución uniforme de los valores de salida. 268 . Eligiendo k aproximada.

EBX SWAP (a) (b) Fig. Si las secuencias son cortas (por ejemplo. Una alternativa es convertir la secuencia en un procedimiento y llamarlo cada vez que se necesite. . El texto que forma el cuerpo de la macro. el programador puede escribir el nombre de la macro en vez del trozo del programa. 2. todos requieren las mismas partes básicas: 1. 3. EAX EBX. Cuando un ensamblador encuentra una definición de macro.EBX El programador ha definido la macro CAMBIA como abreviatura de las cuatro sentencias anteriores. (b) Usando una macro. una abreviatura de un trozo de texto. (a) Sin usar macro. la aísla en una tabla de 269 . Código en lenguaje ensamblador del Intel 80386 para intercambiar P y Q dos veces. como se observa en la figura 7-9(b). P SWAP MACRO MOV EBX. ENDM).EAX P. Q EAX. EAX . Definición. La figura 7-9(a) muestra un programa en lenguaje ensamblador de la 80386 que intercambia el contenido de las variables P y Q dos veces. el procedimiento puede resultar bastante tedioso. P MOV Q. Un encabezado de macro que proporciona el nombre de la macro que va a definirse. . EBX . cada vez que aparezca CAMBIA. . MOV EAX. EAX . Una seudo instrucción que marque el fin de la definición (por ejemplo.MACROS Los programadores de lenguaje ensamblador necesitan repetir frecuentemente grupos de instrucciones dentro de un programa.P Q. será remplazada por las cuatro líneas siguientes: MOV MOV MOV MOV EAX. Estas secuencias se definen como macros. EBX Q. 7-9. realmente. La forma más sencilla de resolver el problema es escribirlas sin más. dos instrucciones) pero se usan con bastante frecuencia. si el número de sentencias es muy elevado o la secuencia aparece muchas veces en el programa. MOV P. Esta estrategia tiene el inconveniente de que requiere una instrucción de llamada y otra de retorno cada vez que se ejecute esta secuencia. Las macros proporcionan una solución sencilla y eficiente al problema que plantean las secuencias idénticas o casi idénticas de instrucciones que se usan repetidamente en un programa. P. Aunque los distintos ensambladores usan notaciones ligeramente diferentes para definir macros.P EBX. MOV Q. P SWAP MOV EBX. pero la verdades que. Después de su definición. Q MOV P. Una macro es. Después de haber definido una macro. MOV EAX. la llamada a procedimiento puede disminuir. significativamente la velocidad de ejecución del programa. llamada y expansión de una macro La definición de macro es un método que permite asignar un nombre a una porción de texto. Q .

Desde ese momento. el ensamblador lo remplazará por su cuerpo. La diferencia básica reside en el hecho de que las primeras indican al ensamblador que remplace el nombre de la macro por su cuerpo. Si se considera solamente el programa en lenguaje máquina. siempre que el nombre de la macro (CAMBIA. Item Llamado a macro Momento en el que se hace Durante el ensamblaje Llamada a procedimiento Durante la ejecución del programa objeto El cuerpo se inserta en el programa objeto en todos los Sí sitios donde aparece el nombre Es una instrucción de llamada a procedimiento insertada en No el programa objeto Debe usarse una instrucción retorno para devolver el No control a la sentencia que sigue a la llamada Número de copias del cuerpo Una por cada que aparecen en el programa llamada a la objeto macro Fig. durante la cual se salvan las definiciones de macro y se expanden las llamadas. dígitos. La salida resultante. un programa en lenguaje ensamblador que no contiene macros. El desarrollo de una macro no es ni más ni menos que la sustitución de ciertas subcadenas de esa cadena de caracteres por otra cadena diferente. signos de puntuación y "retornos de carro" (cambio a una línea nueva). No Sí Sí 1 Aunque las macros generalmente se expanden en la primera pasada del proceso de ensamblaje. en el ejemplo de la figura 7-9) aparezca como código de operación. expansión de macro. el programa fuente se lee y se transforma en otro programa en el que todas las definiciones de macro se han eliminado y en el que todas las llamadas se han sustituido por sus cuerpos. y más tarde será ejecutada para llamar al procedimiento. no durante el proceso de ejecución del programa. espacios. Recuérdese que un programa es una cadena de caracteres. sin preocuparse de su significado. ya que la expansión de macros se terminó y sus definiciones fueron eliminadas al finalizar el proceso de ensamblaje. es imposible decir si se han utilizado macros en su generación.definiciones de macros para su uso posterior. se introduce en el ensamblador. La expansión de una macro se produce durante el proceso de ensamblaje. Las macros no son más que un método que permite manipular cadenas . 7-10. 270 . El uso del nombre de una macro como código de operación se denomina llamada a macro y su reemplazo por el cuerpo. mientras que una llamada a un procedimiento es una instrucción de máquina que será insertada en el programa objeto. que incluye letras. Las llamadas a macros no deben confundirse con las llamadas a procedimientos. Este punto es muy importante.de caracteres. puede ser más simple desde el punto de vista conceptual pensar en un ensamblador con una pasada anterior a la primera. El programa de la figura 7-9(a) y el de la figura 7-9(b) producirán exactamente el mismo código máquina. Desde este punto de vista. La figura 7-10 compara llamadas a macro con llamadas a procedimiento. Comparación entre llamadas a macro y a procedimientos.

Cada ocurrencia de P 1 dentro del cuerpo de la macro se remplaza por el primer parámetro actual. (b) Con una macro Implementación de macros en un ensamblador Para que un ensamblador pueda soportar macros debe ser capaz de realizar dos funciones: guardar las definiciones y expandir las llamadas. Luego se lee el cuerpo y se guarda en la tabla de definiciones. . MOV EAX. Frecuentemente se da el caso de que un programa contiene varias secuencias de instrucciones que son casi iguales. P1 MOV EBX. CHANGE P. cada parámetro formal que aparece en el cuerpo se remplaza por el parámetro real correspondiente. pero no del todo. CHANGE P. Algunos ensambladores tienen una tabla independiente para los nombres de las macros y otros tienen una tabla combinada de códigos de operación. . La figura 7-11(b) muestra el programa de la figura 7-11(a) usando macros con parámetros. utilizando el 271 . seudo instrucciones y nombres de macros. Como ejemplo. como se ilustra en la figura 7-11(a). R EBX. P2 MOV P2. . MOV MOV MOV MOV EBX. se muestra a continuación la representación interna de la definición de la macro CAMBIA. Q . P2 se remplaza por el segundo parámetro actual. (a) Sin macro. En forma similar.Macros con parámetros El tipo de macros descrito anteriormente se usa para acortar programas en los que se repite con precisión la misma secuencia de instrucciones varias veces. 7-11. EAX MOV P1. Los parámetros reales se sitúan en los campos de operando de la llamada a la macro. . Los macroensambladores manejan los casos de secuencias casi idénticas permitiendo que las definiciones de macro acepten parámetros formales y que las llamadas a macro proporcionen parámetros reales. Cuando se desarrolla una macro. El ensamblador debe mantener una tabla de todos los nombres de las macros y. donde se guardan todas las instrucciones de máquina. También se construye una lista de parámetros formales para su uso en el procesamiento de la definición. Q Q. P MOV MOV MOV . EBX EAX. Los parámetros formales que aparecen dentro del cuerpo se indican por una marca especial. de manera que pueda recuperarla cuando la necesite. EAX R. P2 MOV EAX. el número de parámetros formales y un apuntador a otra tabla (la de definiciones de macros) donde se guarda el cuerpo. Q En la llamada macro P es el primer parámetro actual y Q el segundo. Cuando se encuentra una definición de macro. de ahí que los programas ejecutables que producen las dos secuencias de la figura 7-11 son idénticos. Q (b) Fig. CAMBIA P. junto con cada nombre. EBX . EBX (a) CHANGE MACRO P1. cuando la macro se extiende. EAX P. un apuntador a la definición. Los símbolos P1 y P2 son los parámetros formales. Secuencia casi idénticas de instrucciones. Aquí la primera secuencia intercambia P y Q y la segunda R y S. se añaden a la tabla de macros el nombre de la macro. S S. Se examinarán estas funciones una a una.

que había guardado previamente. empieza a leer el cuerpo. se buscan los códigos de operación y se expanden las macros. MOV &P2. montador o ligador (linker). Estas funciones se combinan con bastante frecuencia.&P2. sin embargo.. MOV EAX. no representa en realidad un cambio de nivel. MOV EBX. La función del ensamblador es recoger los procedimientos traducidos y unirlos de tal manera que funcionen como una unidad. Cuando encuentra una llamada. Si se usa el método de los módulos objeto separados de la figura 7-12. en cambio. Los programas que realizan estas funciones reciben varios nombres. Dentro de la tabla de definiciones de macros. 2. lo remplaza por el real. Siempre que el ensamblador encuentra una definición.EAX. El proceso de ensamblado. Hay una buena razón por la que los compilado res y ensambladores traducen cada procedimiento fuente en forma independiente.punto y coma como "control de carro" y el ampersand como símbolo del parámetro formal. la almacena en la tabla. Los compiladores y ensambladores suelen traducir un procedimiento a la vez y guardan en memoria secundaria el resultado de esta traducción. Cada vez que se topa con un parámetro formal. MOV &PI. El ensamblador reconoce fácilmente los parámetros formales por la presencia del carácter &. Si un compilador leyera una serie de procedimientos fuente y produjera directamente un programa en lenguaje máquina de modo de dejarlo listo para su ejecución. La traducción completa de un programa fuente se efectúa en dos pasos. sólo será 272 . MONTAJE (LINKING) Y CARGA La mayor parte de los programas se componen de más de un procedimiento.EBX. el programa enlazado debe cargarse explícitamente en memoria. Compilación o ensamblaje de los procedimientos fuente. Si no se dispone de memoria virtual. el cambio de una sentencia en uno de los procedimientos requeriría traducir de nuevo todos los procedimientos fuente. ya que el lenguaje fuente y el objeto tienen diferentes instrucciones y notación. Antes de que pueda ejecutarse el programa. como cargador (Ioader). La función del cargador es cargar el módulo de carga absoluto en memoria principal. La traducción de un procedimiento fuente aun módulo objeto representa un cambio de nivel. cesa temporalmente de leer del dispositivo de entrada y. ya que la entrada y el resultado del ensamblador son programas para la misma máquina. a la cual se le llama generalmente módulo ejecutable. el cuerpo es simplemente una cadena de caracteres. Durante la primera pasada del ensamblaje.&Pl. como se ve en la figura 7-12: 1. Encadenamiento (linking) o montaje de los módulos objeto. cargador montado (linking loader) y editor de enlaces (linkage edítor). El primer paso lo realiza el compilador 0 el ensamblador y el segundo el montador (linker). todos los procedimientos traducidos deben recuperarse y ligarse correctamente.

273 .necesario retraducir los procedimientos modificados y no habrá que tocar los demás. aunque sí será necesario volver a enlazar (relink) todos los módulos objeto. El enlace es generalmente mucho más rápido que la traducción. de esta manera este proceso de dos pasos puede ahorrar una gran cantidad de tiempo durante el desarrollo de un programa largo.

como sería menester. Para ejecutar el programa. Este paso es equivalente a suponer que el módulo objeto será situado en la dirección (virtual cero durante la ejecución. cada modulo empieza con una instrucción de salto a una instrucción de movimiento de datos dentro de él. ya que esa instrucción está ahora en la posición 300. el cargador (Ioader)sitúa los módulos objeto en memoria principal. aunque cargado en la memoria principal. Por lo general. Consideremos lo que ocurriría si la ejecución comenzase con la instrucción que está al principio del módulo A. En la práctica. no está listo para ser ejecutado. el contador de posiciones de instrucción es puesto a cero. para comunicarse con el sistema operativo y otros propósitos. El programa de la figura 7-14(a).Tareas realizadas por el programa ensamblador Al comienzo de la primera pasada del proceso de ensamblaje. La figura 713 muestra cuatro módulos objeto. por lo que los programas deben empezar más arriba. como se ve en la figura 7-14(a). En esta figura hemos elegido (arbitrariamente) empezar los programas en la dirección 100. una pequeña porción de la memoria que comienza en la dirección cero se usa en vectores de interrupción. todas las referencias a memoria fallarían por la misma razón. El programa no saltaría a la instrucción MUEVE (MOVE). 274 . En este ejemplo.

pero ya que cada procedimiento se traduce por separado. En una máquina con espacio de direccionamiento segmentado. Estos dos problemas pueden ser resueltos por el programa 275 . como el del MULTICS. La naturaleza bidimensional de la memoria virtual del MUL TICS elimina la necesidad de mezclar los módulos objeto y simplifica en gran medida la tarea del ensamblador. En la dirección .400. La dirección del módulo objeto B no se conoce hasta el momento del enlace. el programador ha intentado llamar al módulo objeto B. En una máquina con una memoria lineal. Este problema recibe el nombre de referencias externas. las instrucciones de llamada a procedimientos de la figura 7-14(a) tampoco funcionarán. Los distintos espacios de direccionamiento de los módulos objeto deben también mezclarse en una máquina que tuviese una memoria paginada unidimensional.Este problema. los módulos objeto tienen que mezclarse en un único espacio de direccionamiento. Además. llamado de reubicación. tiene lugar porque cada módulo objeto de la figura 7-13 representa un espacio de direccionamiento distinto. cada módulo objeto puede tener el espacio de direccionamiento situado en su propio segmento. unidimensional. el ensamblador no puede saber cuál es la dirección que ha de poner en la instrucción de llamada.

La tabla de módulos objeto construida en el paso 1 se muestra aquí para los módulos de la figura 7-14: Módulo A B C D Longitud 400 600 500 300 Dirección 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. Basado en esta tabla. si el módulo consta de un procedimiento llamado “GRANLIO”. Estructura de un módulo objeto Los módulos objeto contienen seis partes. Busca todas las instrucciones que contengan una dirección de memoria y. Construye una tabla de todos los módulos objeto y sus longitudes. le suma una constante de reubicación igual a la dirección de comienzo del módulo en el que están contenidas. Identificación Tabla de puntos de entrada Tabla de referencias externas Instrucciones de máquina y constantes Lista de reubicación Fin de módulo Fig. junto con sus valores. Estructura interna de un módulo objeto producida por un traductor. como se ve en la figura 7-15. 7-15. algunas veces.ensamblador . la fecha de ensamblaje. Por ejemplo. asigna una dirección de carga a cada módulo objeto. como las longitudes de las distintas partes del módulo objeto y. Busca todas las instrucciones que hacen referencia a otros procedimientos e inserta en ellas la dirección de los mismos. El programa ensamblador mezcla los distintos espacios de direccionamiento de los módulos objeto para conseguir un espacio de direccionamiento único y lineal en los siguientes pasos: 1. 3. cierta información necesaria para el ensamble. La primera contiene el nombre del módulo. 2. La segunda parte del módulo objeto es una lista de los símbolos definidos en el módulo a los que otros módulos pueden hacer referencia. a cada una de ellas. 4. entonces la tabla de 276 .

La otra. Todas las direcciones de memoria son incorrectas. ejecutarse durante un rato. es muy difícil asegurar que un programa se lea de nuevo en las mismas posiciones de memoria todas las veces. pero que están definidos en otros módulos. las tablas de puntos de entrada y de referencias externas se combinan en una sola. la información de reubicación ha sido descartada hace tiempo. el montador (linker) lee todos los módulos objeto y construye una tabla de nombres de módulos y longitudes. junto con otra que dice qué instrucciones usa cada uno de esos símbolos. La quinta parte del módulo objeto es la lista de reubicación.puntos de entrada contendrá la cadena de caracteres "GRANLIO" seguida de la dirección a la cual corresponde. En la primera. El programador en lenguaje ensamblador indica los símbolos que han de ser declarados como externos mediante una seudo instrucción. Un procedimiento puede llamar a otros procedimientos traducidos independientemente declarando como externos los nombres de dichos procedimientos. Las otras cinco partes las usará el montador (linker) y serán descartadas antes de que comience la ejecución. La sexta parte es una indicación de fin de módulo ya veces contiene una información redundante especial para descubrir errores mientras se lee el módulo y la dirección en la que ha de comenzar la ejecución. Con esta última lista el ensamblador inserta las direcciones correctas en las instrucciones que usan símbolos externos. 277 . volver a escribirse en memoria secundaria y luego leerse de nuevo en la memoria principal para seguir por donde iba. Tiempo de ligadura y reubicación dinámica En un sistema de tiempo compartido. Pero. aun cuando la información de reubicación estuviera disponible. La cuarta parte del módulo objeto contiene el código ensamblado y las constantes. se cargara en la dirección 400 en vez de hacerlo en la 100. esta tabla proporciona la información sobre cuáles son las direcciones que hay que reubicar . Además. La mayor parte de los montadores (linkers) requieren dos pasadas. a las instrucciones que contengan direcciones se les debe sumar una constante de reubicación. Esta es la única parte del módulo que se cargará en memoria para su ejecución. se re ubican y se enlazan uno a uno. El programador en lenguaje ensamblador indicará qué símbolos han de ser declarados como puntos de entrada o símbolos externos usando una seudo instrucción. un programa puede cargarse en memoria principal. como el de la figura 7-14(b). En un sistema grande con muchos programas. con un bit por cada dirección potencialmente reubicable. En algunas computadoras. La tercera parte del módulo objeto consta de una lista de los símbolos que usa. La figura 7-16 muestra lo que ocurrirá si un programa ya re ubicado. seria demasiado grande el costo de tener que re ubicar todas las direcciones cada vez que el programa se vuelva a cargar. donde el ensamblador lo puso originalmente. de símbolos globales.La información puede tomar la forma de una tabla de bit. Como se ve en la figura 7-14. o una lista explícita de direcciones que han de re ubicarse. En la segunda pasada se leen los módulos objeto. contiene todos los puntos de entrada y las referencias externas. Como el montador (linker) no tiene manera de saber por inspección cuáles palabras de la parte cuatro son datos y cuáles son instrucciones.

278 . como en SALTA LUGAR. contiene nombres simbólicos para las direcciones de memoria.El problema de mover programas que ya han sido ensamblados y reubicados está íntimamente relacionado con el momento en que se hace la ligadura final entre los nombres simbólicos y las direcciones absolutas de la memoria física. El momento en que se determina la dirección real de memoria correspondiente a LUGAR se llama tiempo de ligadura. 4. 2. Cuando se carga un registro de base usado para direccionamiento. Cuando se escribe un programa. Cuando se liga el programa. Cuando el programa se traduce. 6. 5. 3. Cuando el programa se carga. Cuando se ejecuta la instrucción que contiene la dirección. Cuando el programa se escribe. Hayal menos seis posibilidades para el tiempo de ligadura: 1. pero antes de cargarse.

sería incorrecta (suponiendo que el objeto al que haga referencia se haya movido también). la ligadura se habría producido en el momento de la traducción y el programa debería ejecutarse en las direcciones en las que el traductor esperaba que lo hiciera. está de hecho creando un espacio de direccionamiento virtual. se dice que son independiente de la posición. un programa debía . Un método más 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. la segunda.do sus posibilidades si ha de realizar el proceso de enlace previamente a la ejecución. a direcciones absolutas en registros de dispositivos de E/S).Si una instrucción que contenga una dirección de memoria se moviera después de la ligadura. Como las dos implantaciones son en cierto modo 279 . facilitará el movimiento de programas por la memoria principal. los compiladores tienen procedimientos para traducir sentencias raramente usadas y para tratar condiciones de error que acontecen pocas veces. A este proceso se le conoce como enlace dinámico. el proceso de ligadura estará completo. sólo se necesita actualizar el contador de programa. Después de que un programa se haya movido en la memoria principal. Enlace dinámico En el método de montaje analizado en la Sección 7. sin necesidad de reubicación. El cual fue utilizado en primera instancia en el MULTICS y después en el OS/2. Un procedimiento de este tipo se puede colocar en cualquier parte del espacio de direcciones virtual. A todas las direcciones de memoria se les suma el registro de reubicación. El proceso de reubicación es por completo transparente al mecanismo es menos general que el de paginación. La reubicación y el montaje sirven para ligar los nombres simbólicos con direcciones virtuales específicas.g. aunque sus direcciones físicas de memoria principal dependan del contenido de la tabla de páginas en el momento en que se usen. tal como el registro CS en las CPU de Intel. antes de enviarlas a memoria. que pueden referenciar memoria en forma relativa al contador de programa. Por ejemplo. Siempre que se mueve un programa en la memoria. Cuando el ensamblador mezcla los espacios de direccionamiento de los módulos objeto en un espacio único y lineal de direcciones. Esto es cierto tanto si se usa la memoria virtual como si no se usa. Si el traductor produjera un módulo de carga absoluto como salida. En las máquinas que usan este método de reubicación. como se muestra en la figura 7-16. por medio de hardware. La primera se refiere al momento en que los nombres simbólicos se ligan con direcciones virtuales. Uno de estos mecanismos es la paginación. Un módulo de carga absoluto es en realidad una ligadura de nombres simbólicos con direcciones virtuales. El método de ensamblado que se ha descrito en la sección anterior liga los nombres simbólicos con las direcciones absolutas. Muchos programas tienen procedimientos a los que no llaman. Supongamos por el momento que el espacio de direccionamiento de la figura 714(b) estuviese paginado. en cuyo caso se le debe mover como a dos unidades). Sólo cuando ambas operaciones se hayan realizado.enlazarse antes de su ejecución con todos los procedimientos potencialmente necesarios. Es posible tener un tercer mecanismo en máquinas como las CPU 680xO. Los programas cuyas referencias a memoria son en su totalidad relativas al contador de programa o absolutas (v . Hay dos cuestiones relacionadas con esto. Un segundo mecanismo es el uso de un registro de reubicación en tiempo de ejecución. salvo en circunstancias excepcionales. B. Cualquier mecanismo que permita el cambio sin dificultad en el mapeo entre direcciones virtuales y físicas de la memoria principal. aunque ya hayan sido ligados a un espacio virtual de direccionamiento.4. no se aprovechan a fon. C y D ya han sido determinadas. solamente habrá que cambiar la tabla de páginas. al momento en que se ligan las direcciones virtuales con direcciones físicas.1. ya que implica mover al programa completo como a una unidad (a menos que haya registros separados de código y de datos. no el programa en si. Está claro que las direcciones virtuales correspondientes a los nombres simbólicos A. En una computadora con memoria virtual. el registro siempre apunta ala dirección de la memoria física de inicio del programa actual. por lo que el programa no funcionará si se mueve a direcciones diferentes después del ensamblado. .

como se muestra en la figura 7-17(a).diferentes. En el MUL TICS existe un segmento asociado a cada programa denominado segmento de enlace. Este buscará en el directorio de archivos del usuario un procedimiento compilado que tenga el mismo nombre que el situado detrás de la palabra con la dirección inválida.asignada. Cuando se llame a un procedimiento situado en un segmento diferente. normalmente en un segmento para él solo. el intento de direccionar con la palabra inválida causará un desvío al enlace dinámico. bloque se inicia con una palabra reservada para la dirección virtual del procedimiento. En seguida se 280 . Luego le asignará una dirección virtual. El traductor llena esta palabra con una dirección inválida o con un patrón de bits que fuerza un desvió. el cual contiene un bloque de información para cada procedimiento que pudiera ser llamado. como se indica en la figura 7-17(b). Cuando se aplica el enlace dinámico. se expondrán ambas. y cambiará la dirección inválida por la dirección virtual recién . las llamadas a procedimiento del programa fuente se traducen a instrucciones que direccionan en forma indirecta la primera palabra del bloque de enlace correspondiente. seguida del nombre de éste en la forma de una cadena de caracteres. Dicho.

se ha decidido con antelación que cada transacción tenga un nombre y que cada una se lleve a cabo por medio de un procedimiento del mismo nombre. ya que esta información puede estar contenida en el mensaje que se le envía. En el OS/2. Ni siquiera es necesario que el programa sepa por adelantado en donde se encuentra el procedimiento. En seguida. se esperaba que al evolucionar éste. el esquema de enlace dinámicos más general que el de MULTICS. El código ejecutable para este procedimiento se almacenará como un archivo con el mismo nombre. Todas las referencias al procedimiento que tengan lugar después se ejecutarán sin causar falta de enlace. Un programador de OS/2 no necesita saber los nombres de todos los procedimientos que su programa. En consecuencia. llamará. 281 . Las llamadas posteriores al mismo procedimiento se realizan en la forma normal. Al momento de diseñar el sistema. hace una segunda llamada al sistema operativo para que busque y le proporcione la dirección de inicio del procedimiento que necesita (el archivo puede contener varios procedimientos). permitiendo que el programa continúe desde donde estaba antes del desvió. compilando simplemente el código objeto relevante y colocándolo en alguna parte de un disco.vuelve a ejecutar la instrucción causante de la falta de enlace. Cuando una terminal remota envía un mensaje a la computadora central. Después. ya que la palabra indirecta contiene ahora una dirección virtual válida. el programa de transacción construye el nombre de archivo que contiene el código relevante y realiza una llamada de sistema solicitando al sistema operativo que localice el archivo y lo traiga a la memoria. en un directorio especial. en última instancia. se incorporaran nuevos tipos de transacciones. sólo se hará uso del enlace dinámico la primera vez que se llame a cada uno de los procedimientos. En un sistema distribuido de operaciones bancarias. Debe quedar claro que este esquema hace posible incorporar nuevos procedimientos a un programa ya probado. Tampoco se requiere que el programa detenga su ejecución y se recompile. sin necesidad de llamadas de sistema. una máquina central recibe solicitudes de terminales distantes para llevar a cabo ciertas transacciones. éste incluye el nombre de la transacción. el programa principal llama al procedimiento. Para permitir la evolución del sistema. Teniendo ya esta dirección (en realidad un selector de segmento y un desplazamiento). Considérese el ejemplo siguiente.

CONCLUSIÓN 282 .

BOLILLA VI (Parte 1): PERIFÉRICOS 283 .

................................22 SISTEMA OPERATIVO..........................................................18 Arbitraje del bus:..........22 Multipexor por bloques: .....................14 Hardware:..........................................................................15 Unidad aritmético-lógica:.....13 Para qué sirve una computadora?:...........19 Dispositivos de E/S..........................................................................................................................14 Al software se lo clasifica en dos grupos: .......................................................................................................................................4 INDICE....................................................................................Componentes Básicos:...................25 BOLILLA II (Parte 1): EL NIVEL DE LOGICA DIGITAL.................................................................................................................................................................................................................................................................................................................20 Canales de e/s.................................................19 Ejemplo de encadenamiento margarita:.............................................15 Unidad de Control:.....................................................13 CONCEPTO:....................................................................................................................................................................................................................................................................................................................................................................................................................................................35 COMPUERTAS Y ALGEBRA BOOLEANA.........................................................................................................35 Compuertas.....................21 Multiplexor: .......................15 Memoria:(Memoria Central)...................................................................................................................................................................................................................................................................................................21 Selector..............................................................................................................................................................................................................................................................................................................................................................................................................15 Núcleo de la computadora: ...................13 Computadora y Circuitos:.......................................................................................................................................................................................................................................5 INTRODUCCIÓN............................................................................................................................................................................................................................................................14 HARDWARE Y SOFTWARE: ......................15 Periféricos: ...........................................................27 INTRODUCCIÓN....................................22 Spoll: ..............................................................................................................................................26 INDICE......................................................21 TIPOS DE CANALES:....................................................................................................................INDICE INDICE GENERAL...........................................................................................................................................................................................................................................................15 BUSES DE COMPUTADORAS:.......................19 Solicitud del Bus...................................................................................................................................23 ¿QUÉ ES UN SISTEMA OPERATIVO?................................23 Introducción: ................1 BOLILLA I: LA COMPUTADORA....................................................................................................................................34 EL NIVEL DE LOGICA DIGITAL......................................19 Manejo de interrupciones:..................................16 Buses síncronos y asíncronos: ..........................................................................................................................35 284 ................................................................................................................................................................................................................................13 FUNCIONES Y ACCIONES:.........................................12 LA COMPUTADORA.......................15 Arquitectura .............................20 TECNOLOGÍA DE CANALES:.......................................24 CONCLUSIÓN.....................14 Software: ..........

53 Registros de corrimiento..............................................................................................90 Buses ...............................................................................................55 Relojes .................................................................................66 Microprocesadores ...............................................................................................................................................................................................................................................................81 INTRODUCCIÓN..............................96 La ruta de datos .....................................................................................................................................................................................................................................................................................40 CIRCUITOS DIGITALES BÁSICOS........................................................73 Arbitraje del bus ................................................................................................92 Relojes ....................................................................................................................90 Registros ......................................44 Circuitos combinacionales ..................................................70 BUSES ASINCRONOS...................................................................................................................................................................................51 Arreglos (matrices) lógicos programables ...................................................................................................................59 Flip-flops y registros.........................79 BOLILLA II (Parte 2): EL NIVEL DE MICROPROGRAMACIÓN..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................57 Bieslables SR sincronizados..................................80 INDICE........................74 Manejo de interrupciones .............................61 Propiedades de las memorias................................................................................................................................................................................................................................................................................95 UNA MICROARQUITECTURA TIPICA ........................59 Biestables D sincronizados.............................................................................90 Multiplexores y decodificadores ......................................................................................................................................................................................................................47 Decodificadores ......................................................................................................................................................................................44 Circuitos integrados ..........................................................................................................................................................................................................................................100 Secuenciamiento de las microinstrucciones ..................................98 Cronología de las microinstrucciones ...................................................................................................................53 Sumadores ......93 Memoria principal ....................................68 Buses síncronos .........................96 Microinstrucciones ................................88 EL NIVEL DE MICROPROGRAMACIÓN .........55 MEMORIA..................................92 Unidades aritméticas y lógicas y registros de corrimiento ......................................................................................................................................77 CONCLUSIÓN.........................................................................54 Unidades aritméticas y lógicas.....................................................................................................................................................102 285 ...........................................................................................................37 Implementación de funciones booleanas .....................................47 Multiplexores ..................................66 Buses de computadora.......................59 Registros..................................................................................................................................51 Circuitos aritméticos.....................................................................................................................................60 Organización de las memorias...................................................................................................89 REPASO SOBRE EL NIVEL DE LÓGICA DIGITAL .................................................Algebra booleana..........................................94 Encapsulado de los componentes ....................................................................................................................64 MICROPROCESADORES y BUSES.............................................49 Comparadores ...........................................................................................57 Biestables............................38 Equivalencia entre circuitos.........................................................................................

...149 La PDP-11.......................................................................................................................144 FORMATOS DE INSTRUCCIÓN...................................................................................................................................111 Observaciones sobre el microprograma ...........................................................................................................................................................................................................160 Instrucciones de movimiento de datos .......................................................115 Nanoprogramación .......................................................................................................................................................................................................................................................................................................................................................................................166 Control de iteraciones ..........................................................................................................155 Evaluación de fórmulas en la notación polaca inversa.......................................................................................................................................................................................161 Operaciones binarias .................................................................................................................................................................................................................................167 Entrada / salida ..............................123 Memoria caché ...............................................110 El ejemplo de microprograma ............................................................................164 Instrucciones de llamada a procedimiento ..................................153 Notación polaca inversa......................................................................................................................................................................114 EL DISEÑO DEL NIVEL DE MICROPROGRAMACIÓN ................................................103 Pilas ..............................................................................................................................162 Comparaciones y Saltos Condicionales...........................................................................................................152 Direccionamiento por medio de pilas........................................149 Direccionamiento.............................115 Microprogramación horizontal frente a microprogramación vertical......................................................................................................................................................................................................................................................................................157 Ejemplos de direccionamiento........149 Direccionamiento inmediato......................................................................................................173 286 .............................157 Algoritmo.....................................................................................................................................160 Direccionamiento en la PDP-11...........173 Flujo de control secuencial y saltos .............................................145 Criterios de diseño de formatos de instrucción...................................160 Tipos de Instrucciones .........................................................161 Operaciones unarias .......................................................................................................................................................................135 INDICE....................................113 Perspectivas ...129 CONCLUSIÓN.............................................................................................................UNA MACROARQUITECTURA TIPICA ........151 Direccionamiento indirecto...........................................................................146 Códigos de operación con extensión....................122 Mejora del rendimiento .........168 Flujo De Control ................................................................................................................................................................................147 Ejemplos de formatos de instrucciones.............151 Indexación.....150 Direccionamiento directo.........................135 BOLILLA II (Parte 3): EL NIVEL DE MAQUINA CONVENCIONAL............................................................................136 INTRODUCCIÓN..143 EL NIVEL DE MÁQUINA CONVENCIONAL.........................................................................134 .......................................................................................................................................................................................................................................................................................................103 El juego de macroinstrucciones ...................................................................................................................................................157 Algoritmo...................................................................................150 Direccionamiento de registros...............................................................110 El lenguaje micro ensamblador ..............................................................................107 MICROPROGRAMACIÓN: UN EJEMPLO .........144 EJEMPLOS DEL NIVEL DE MAQUINA CONVENCIONAL........

...................................................................197 ESTRUCTURA GENERAL.......................................................................................................214 BOLILLA IV: MEMORIA...........................................................................................................187 BOLILLA III: ARQUITECTURA DEL PROCESADOR........................206 FASE DE BÚSQUEDA DE LA INSTRUCCIÓN ......................................209 INSTRUCCIÓN DE RUPTURA DE SECUENCIA ................................................................................................................................197 Microprocesadores...............................................................................................................................................................................................................................200 EJECUCIÓN DE LAS INSTRUCCIONES ..................................................................................................................................................................................174 Corrutinas ............189 INTRODUCCIÓN...............................................................................................................................211 INTERRUPCIONES ........................210 LAS UNIDADES PERIFÉRICAS ......................................................................................................................................................................................................................................239 287 .....................................231 Pastillas de memoria en paralelo ..........................183 ACCIONES DE SOFTWARE ....204 LA UNIDAD DE CONTROL.....................................................................................................................................................................................227 CLASIFICACIÓN Y ORGANIZACIÓN DE LAS MEMORIAS ....183 ACCIONES DE HARDWARE .............................................................................................................................................216 INTRODUCCIÓN.......................................235 Memorias de acceso serie ................................................196 ARQUITECTURA DEL PROCESADOR.182 Interrupciones ..................209 EL CANAL...................................................................224 DIRECCIONES DE MEMORIA .................................................................................................226 CÓDIGOS CORRECTORES DE ERRORES ..........215 INDICE.......229 Memorias de acceso aleatorio (RAM = Ramdom Acess Memory) ......208 FASE DE PREPARACIÓN DE LA SIGUIENTE INSTRUCCIÓN ................207 FASE DE BÚSQUEDA O ALMACENAMIENTO DEL OPERANDO ........................................................................................................207 Caso de búsqueda del operando............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................238 MODOS DE DIRECCIONAMIENTO ......197 DESCRIPCIÓN DE LOS COMPONENTES DE UN PROCESADOR ......225 ORDENAMIENTO DE BYTES .....................................................................................................................................................................................................211 CONCLUSIÓN.........................................................184 CONCLUSIÓN....233 Memorias pasivas.......................................................188 INDICE...................................................................................................................................................................................................................................................................................................................................................236 Memorias asociativas .202 LA UNIDAD ARITMÉTICA Y LÓGICA ................................................................................................................................................................................................................. seguido de procesamiento: ..................................................................................................................................................227 PARáMETROS y CARACTERíSTICAS MáS IMPORTANTES DE UNA MEMORIA 228 Capacidad.......207 Caso de almacenamiento del operando: ............201 ORGANIZACIÓN DE LA CPU .................228 Formas de acceder a las posiciones de memoria ................223 MEMoRia .179 Desvios .........................Procedimientos .....................................229 Estructura de una RAM semiconductora ...................................................................................

....................292 INTRODUCCIóN .................................................261 La primera pasada .243 Otros modos de direccionamiento .......................................................................................................................239 Modo de direccionamiento indirecto .............................................................................................................................244 CONCLUSIÓN.....................292 PERlFERICOS DE ENTRADA: .......................... .................. llamada y expansión de una macro .............................................................254 EL NIVEL DEL LENGUAJE ENSAMBLADOR............................................................................................................262 La segunda pasada .......................................................................240 Modo de direccionamiento relativo .293 Cuidados y advertencias........................................................267 MACrOS ........259 EL PROCESO DE ENSAMBLAJE ....................................................272 Tareas realizadas por el programa ensamblador ....................................................................................256 Formato de una sentencia en lenguaje ensamblador ............................................................................................................................Modo de direccionamiento directo ...............................283 INDICE.............................................................261 Ensambladores de dos pasadas ..........................................................277 Enlace dinámico ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................242 Modo de direccionamiento por registro indirecto .............................................282 BOLILLA VI (Parte 1): PERIFÉRICOS......................................................................................296 288 ...............................................293 TECLADO: .............271 MONTAJE (LINKING) y CARGA ..................................................................................................................................................................................................269 Macros con parámetros ....................................................................................................................................................291 PERIFÉRICOS...............................................................240 Modo de direccionamiento indexado ........................................246 BOLILLA V: EL NIVEL DEL LENGUAJE ENSAMBLADOR....................................................................................................................................279 CONCLUSIÓN...........................266 La tabla de símbolos ...............................258 Afinación de programas ...............................................................................245 ...........................................................................................................................................................................................................................................255 INTRODUCCIÓN AL LENGUAJE ENSAMBLADOR .................................................................................................276 Tiempo de ligadura y reubicación dinámica .................................269 Definición.................................................................256 ¿Qué es un lenguaje ensamblador? ................................................................................................................................................292 RESEÑA HISTÓRICA.....................................................................................................274 Estructura de un módulo objeto ...........294 MOUSE (RATON) ............................................................................................................................................................................. lenguaje ensamblador y los lenguajes de alto nivel ........................................................................................................284 INTRODUCCIÓN................................296 Ratones Estacionarios......................................247 INTRODUCCIÓN............................................................................................................................................................................................296 Ratones Inalámbricos..................................................................271 Implementación de macros en un ensamblador ...........................................295 Tipos de ratones................................................................................................................257 Comparación entre el.....................246 INDICE................................

.......................................................................................................................297 Escáner de Sobremesa: ..............................................298 LAPIZ OPTICO: ....................................................................................297 Ventaja: ......297 Escáner de Rodillo:........................................................................................................................................................................PANTALLAS TÁCTILES: ..........................................297 Escáner de mano: ........306 PERIFERICOS DE COMUNICACION.....................................................................................300 1......................................................................307 CONCLUSIóN............................................................................................................................................................................................297 Desventajas: .................................................................................................................................................................................................................................................309 289 .........................................................................................300 Facilidad de manejo y almacenamiento..................303 El disco por dentro: ..................................... .....................................................305 Impresora de Bola: ................................................................................................................305 Impresoras con cinta entintada: .........................297 Desventajas: ..........306 Impresoras sin cinta entintadas: .................................297 LECTORES DE CODIGO DE BARRA.....................................................................................................................296 BOLAS GIRATORIAS: .....................................305 Impresoras de agujas: ....................................... ........................................................308 CONCLUSIÓN.........................................................................................................299 Discos...............................................................................307 MODEM..............................................................................................................................................................................................................................................297 Ventajas: ........296 Profundidad de color.............300 Disco duro......................................306 Impresoras Láser de color: ............................................................................................................303 La compresión MPEG-2: ....................................................................................302 DVD:..................................................................................................................................................................................301 Cintas magneticas: ............303 El futuro del DVD: .......................................................................................................................................................................................297 Calibración...................................................................................................296 ESCANER ..............................................................................................................306 Impresoras térmicas: .............................................304 Impresoras.........................................................................................................298 LECTORES DE TARJETAS MAGNETICAS.................................................................................307 Aspectos técnicos.....................299 Discos flexibles.....................................................................304 PANTALLAS DE SISTEMAINFORMATICO (Monitor): .....................302 Prestaciones del DVD: .................................299 Fiabilidad del soporte...........................................296 Tipos de escáner:................300 2.............................306 Impresoras láser: .................................................................................................................303 PERIFERICOS DE SALIDA: .................................................................................................................. .............................................................................................................................................................................................................................................................................................300 Discos opticos: ..................297 TABLETA DIGITALIZADORA...... Disco flexible de 5 1/4 pulgadas ...........................................................................................................................................................................................................................................................306 Impresoras de inyección de tinta: ...................................................................................................................... Disco flexible de 3 1/2pulgadas ....298 PERIFERICOS DE ALMACENAMIENTO: ............................................................................................................................................................................................................................307 Como usar la Tecnología 56K .................................................................................................................................................

......................................................................................................................................................340 CONCLUSIÓN.............................................319 Dispositivos de soporte magnético.................................................................................................................................................................................319 Dispositivos de fichas y de banda perforada.............................................................................338 Transferencia DMA ....................................................................................................342 CONCLUSIÓN FINAL..............310 INDICE.........335 Polling (interrogatorio de tráfico) ...............336 Interrupciones (interrupts) ..................343 BIBLIOGRAFÍA .....................................................................................................................................................................................................................................................................................................................................318 TECNICAS Y DISPOSITIVOS DE ENTRADA / SALIDA (Input / Ouput)...............................334 Otros periféricos....................323 Plotter..................................................................................................................................311 INTRODUCCIÓN.............................BOLILLA VI (PARTE 2): TÉCNICAS Y DISPOSITIVOS DE ENTRADA SALIDA...........330 La pantalla...............................................................................334 Técnicas de entrada/salida (input/output).....................................................................339 GLOSARIO............................................................................................................................................................344 290 ..............................................................................................................................................................................331 Terminales.............................................................................................................323 Impresoras.................................................................................................................................................................332 Procesos de comunicación para la transmisión de datos a distancia........

INTRODUCCIÓN 291 .

292 . La comunicación interactiva de la computadora con los usuarios durante el proceso. 2. 3. Los periféricos se comunican con la unidad central de proceso a través de los canales de transferencia de información. La conexión entre los periféricos y la unidad central del sistema de la computadora se realiza a través de adaptadores o interfaces. Introducir en la computadora la información necesaria. La comunicación a través de protocolos de comunicaciones que compatibilizan la transmisión de datos entre ambos. Los periféricos 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 más caracteres. Existen básicamente dos métodos para la transmisión de datos : 4. 3. 5. en forma de ordenes de comando y datos para realizar los procesos necesarios. Existen diversas variantes de instrumento según las diferentes zonas donde se ha utilizado: 1. Serie: las diversas señales se transmiten bit a bit. El envío al exterior de la unidad central del sistema de la computadora de los resultados obtenidos tras los procesos de información realizados. Marcelo Martinez 2003 PERIFÉRICOS RESEÑA HISTÓRICA La naturaleza ha dotado al ser humano de diversas habilidades entre las que merecen destacarse la capacidad de abstracción y la posibilidad de realizar cálculos matemáticos. como el quipu de loS Incas. Debido a esto se vio obligado a ayudase de diversas maneras. los buses. 2. una tras otra. sobre el mismo cable físico. La eficacia de un sistema informático depende de la velocidad de trabajo de sus periféricos. En Sudamérica también existieron herramientas que pudieron tener una utilización similar. En la historia de la humanidad el ábaco fue la primera herramienta de cálculos diseñada y construida por el hombre para ayudarse en la realización de operaciones matemáticas. En Europa los griegos. En España el ábaco se utilizo hasta prácticamente el siglo XX pero con el nombre de contador . INTRODUCCIÓN Los periféricos son una serie de dispositivos que conectan a la unidad central del sistema de la computadora con el exterior permitiendo: 1. Estas habilidades no hubieran progresado en la medida que lo han hecho si el hombre no se hubiera visto obligado a realizar cálculos complejos mentales o con ayuda de sus dedos.APUNTES DE CATEDRA CARRERA: Cátedra: Profesor: AÑO: LICENCIATURA EN ANALISIS DE SISTEMAS – INGENIERIA EN SISTEMAS Procesamiento De Datos I Lic. Paralelo: todas las señales que integran una palabra o dato unitario se transfiere simultáneamente a través de cables separados paralelos. En Oriente se fabricaron los primeros ábacos que todavía se utilizan en algunos países. posteriormente debido a intercambios comerciales con otros pueblos. 4.

como cubiertas de plástico para aplicaciones industriales o de servicio de comida. • Periféricos de salida. El teclado transforma la pulsación de cada tecla en una señal electrónica particular que es reconocida por la C. Los teclados "Macintosh" se conectan al bus de escritorio apple (ADB). Ky5). • El apple ajustable (puede separarse en dos secciones ajustables a 30° grados) El teclado se divide físicamente en tres bloque de teclas y un grupo de teclas especiales: 1° “Teclas alfanuméricas” Este grupo de teclas es similar al teclado de una maquilla de escribir estándar: las teclas del alfabeto. el más popular . Entre los dispositivos de entrada se cuentan: TECLADO: El método más común de interacción con una computadora es el empleo del teclado. La mayoría proporciona el teclado "QWERTY" (debido al orden que siguen las teclas alfabéticas de la primera fila). el punto en relieve está en las teclas D . Los teclados proporcionan varias respuestas ( desde duras hasta blandas) y tiene varias disposiciones. grandes teclas etiquetadas con letras romana y punto en relieve en las teclas F.P.C . J y 5 para que los programas de procesamiento numérico puedan utilizar estas teclas y las cercanas para emular una calculadora ( en la Macintosh. dependiendo de su computadora y el modelo del teclado. signos de acentuación y puntuación los diez decimales y símbolos 293 . aunque están disponibles varios estilos con más o menos teclas especiales. Los periféricos de entrada de información son los más lentos del sistema informático por una razón evidente: son manejados por el ser humano. los teclados se conectan a los circuitos de la tarjeta madre. el cuál maneja todas las formas de entrada de un usuario. es la unidad periférica de entrada de datos al sistema informático más universal. En las PCs. • Radial o en estrella: cada periférico se conecta con la computadora a través de su propia línea de comunicaciones. La mayoría de los teclados en las PCs son del tipo 101 (que brinda 101 tecla). • Periféricos de comunicación. desde la tabla digitalizadoras hasta los ratones. PERLFERICOS DE ENTRADA: Los periféricos de entrada son subsistemas que permiten la introducción de información y ordenes en el interior de la p . diodos emisor de luz (LED) y otras características. Están disponibles tres teclados Macintosh: • El apple estándar • El apple extendido. • Periféricos de almacenamiento de la información. Existen varios tipos de periféricos: • Periféricos de entrada.U.La conexión de los periféricos con la computadora se puede realizar de dos formas diferentes: • Línea compartida: Todos los periféricos se conectan a la unidad central del sistema a través de una sola línea de comunicaciones.

estas se van depositando en los intersticios y 294 . entre los que se destacan: • Teclados Mecánicos • Teclados Electrónicos TECLADOS MECÁNICOS : Son más antiguos que los electrónicos y. esta expuesto aciertos riesgos que pueden alterar su normal funcionamiento. Las ventajas de las teclas de función es órdenes a través del teclado. TECLADOS ELECTRÓNICOS: Solucionaron el problema del efecto rebote creando un retardo en el controlador para eliminar las señales producidas por el mismo. El teclado tiene la particularidad de "atraer" las migas y cenizas. menos fiables y caros de construir. sino que existía un efecto rebote sobre la superficie del contacto eléctrico que enviaba varas veces la señal al controlador del teclado. Dentro del teclado existe una placa con un contacto electrónico para cada tecla. 6° "Tecla ALT" Esta tecla se denomina alternar . Los teclados mecánicos presentaron un problema debido a que. Al presionar una de ellas. Cuidados y advertencias Si bien el teclado es considerado un dispositivo no frágil. como su nombre indica permite "escapar" de algunos .especiales. Para que este mecanismo se desencadene normalmente hay que tomar ciertas precauciones : No es recomendable comer. y se usa en combinación con otras teclas. 5° “Tecla CTRL” Esta tecla se denomina control. mientras no este pulsada. 3° “Teclas numéricas” Son un bloque de teclas similares al de una calculadora para facilitar el trabajo de introducción de datos y la realización de operaciones matemáticas. pulsando al mismo tiempo la tecla ALT y 164 se leerá en el monitor la letra ñ. también es una tecla que provoca acciones especiales de la computadora o de los programas que estén ejecutándose en ese momento. en un procesador de textos el cursos pasará a la línea siguiente. Generalmente sirve para avisar al sistema operativo de que el usuario esta intentando realizar una acción especial.procesos. en la pantalla del sistema informático aparecerán los dígitos impresos en cada tecla numérica. 4° “Tecla ENTER o INTRO” Esta tecla se utiliza para indicar a la computadora que ha terminado de introducir información en una línea Si se esta trabajando en un programa de aplicación se realizará la acción que corresponda. Existen varias tecnologías para la construcción de teclados de computadora. 2° “Teclas de función” Realiza un conjunto de operaciones especiales especificadas por el fabricante de la computadora o de la aplicación informática que esté ejecutando en su momento. en algunos casos. pudiéndose utilizar estas teclas para navegar por la pantalla de la computadora. como la ejecución de un listado en la pantalla de la computadora. o de algunos programas de aplicación comercial. por ejemplo. Por Ejemplo. por su tecnología de construcción la parte mecánica de las teclas no efectuaba solo un contacto al pulsarla. ni fumar mientras se trabaja en la PC. se acciona un contacto y la información se transmite a la computadora a través de cables. El bloque de teclas numéricas tienen dos modos de funcionamiento principales: si la tecla NUM LOCK (bloqueo numérico) está pulsada en el teclado. las teclas estarán en modo de control del cursor . 7° “Tecla ESC" Se denomina escape.

se recomienda. metida dentro de una caja de plástico. roza unos contactos en forma de rueda que indican el movimiento del cursor en la pantalla del sistema informático. Estas ruedas son las que informan a los circuitos integrados del ratón los cambios de posición. provocando problemas como los recién mencionados. Dentro de la caja hay dos ruedas dentadas que se friccionan contra la bola de acero y que se mueven según se gire la bola a través de una superficie plana. Por ello. al quedar expuesto sobre el escritorio. lo que provoca dificultades tales como letras que no se marcan o se repiten y lentitud en la escritura. un sensor óptico situado dentro del cuerpo del ratón detecta el movimiento del reflejo al mover el ratón sobre el espejo e indica la posición del cursor en la pantalla de la computadora. Tampoco es una buena costumbre dejar la taza de café cerca del teclado o apoyada sobre el gabinete. 1. al moverse el ratón. En el ratón se utiliza una bola de acero pesada. 295 . Una limitación de los ratones ópticos es que se ubican sobre una superficie que refleje el haz de luz. la bola. El ratón es la extensión del dedo humano para señalar. Por otra parte. tocar y escoger los objetos que se muestran ella pantalla.Ratones Mecánicos: Los ratones mecánicos constan de una bola situada en su parte inferior. Suelen tener dos o tres botones para poder ejecutar las diferentes operaciones por ejemplo: en el proceso de señalamiento y doble click para abrir un documento o en la operación de hacer click y arrastrar en la que el botón del ratón se mantiene oprimido. cubierta de goma. para arrastrar un objeto o para seleccionar una opción en el menú desplegable. El mouse es simplemente un controlador del cursos o puntero que aparece en la pantalla del sistema informático al que se conecta. 2.al acumularse. el teclado se convierte en un inevitable depositario del polvo ambiental. termina tapando los contactos. Si se desea limpiarlo superficialmente nunca emplee alcohol común o sustancias solventes ya que puede dañar su mecanismo. Un decodificador convierte el movimiento del ratón en movimiento del cursos en la pantalla de la computadora.Ratones Ópticos: Los ratones ópticos tienen un pequeño haz de luz láser en lugar de la bola rodante de los mecánicos. Existen dos tecnologías principales en fabricación de ratones: Mecánicos y Ópticos. el derrame de cualquier líquido sobre el teclado puede anular el funcionamiento de los contactos y facilitar al adherencia de suciedad. Este posee un software asociado que relaciona las filas y las columnas de la pantalla del sistema informático con un espacio situado en una superficie donde se sitúa el aparato. utilice alcohol isopropílico. un aerosol de aire comprimido o simplemente un trapo húmedo- 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 ( ergonómicamente ). cubrirlo con una funda mientras no este en uso. En cambio.

que posibilita el usuario un alto grado de precisión y libertad en los desplazamientos del cursor (Tracking). No es fácil almacenar imágenes dentro de la computadora. no acepta otros objetos como lápices o puntos. no requiere mantenimiento físico . su cable presupone una mayor vida útil. Profundidad de color El parámetro expresado en bits. de manera que es capaz de calcular el desplazamiento del cursor PANTALLAS TÁCTILES: Este dispositivo se usa en espacios reducidos y /o en lugares abarrotados de objetos.C. el puntero se desplaza a la deriva por la pantalla. Por último un DAC (Digital. donde el movimiento del mouse se toma dificultoso.Analog Converter) convierte los datos analógicos en valores digitales. Estos se basan en la tecnología Marble Sensing. excepto que el cursor se mueve utilizando uno o más dedos para hacer girar la bola. ESCANER Son lectores ópticos de imágenes. BOLAS GIRATORIAS: Son similares a los ratones. La tecnología Marble Sensing permite la medición óptica del movimiento mediante un sistema electrónico que actúa como una cámara. la única forma fácil y rápida de hacerlo es utilizando un periférico de este tipo. la conversión de una información analógica a datos comprensibles por la P. su aspecto es agradable y fino y su ergonomía se adapta de manera cómoda y natural. Su funcionamiento es simple para ello basta con posesionar un dedo sobre el pequeño pad y desplazarlo por su superficie. línea por línea la imagen o documento en cuestión 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 información analógica. Los escáner se asocian a un tipo de software especialmente diseñado pata el manejo de este tipo de información en código binario llamados OCR (Opticals Character Recognition o reconocimiento óptico de caracteres). Un caso particular de la utilización de un escáner ~ aunque representa una de sus principales ventajas. Una fuente de luz va iluminando. llegándose a alcanzar los 1200 caracteres por segundo. no necesitan una superficie plana como el ratón esto es importante para ambientes reducidos y computadoras portátiles de baterías. esto se debe a que a diferencia de los traskballs y ratones tradicionales. es decir. es la velocidad de lectura e introducción de la información en el sistema informático con respecto al método tradicional de introducción manual de datos por medio del teclado. Las bolas giratorias tienen al menos dos botones: uno para hacer click o doble click y otro para seleccionar menú y arrastrar objetos.Tipos de ratones Ratones Inalámbricos. para ello se vale de una serie de componentes internos que posibilitan este objetivo. al no experimentar continuos movimientos con el uso. que permiten reconocer e interpretar los caracteres de teclados por el escáner en forma de una matriz de puntos e identificar y determinar que caracteres son los que el subsistema está leyendo . El click se puede hacer tanto presionando las dos pequeñas teclas ubicadas sobre el pad como ejecutando un leve golpe sobre su superficie. Una de las desventajas es que su precisión no es como la del mouse pero la mayor dificultad se registro al intentar manejar el dispositivo con la mano húmeda. indica el número de tonalidades de color que un píxel 296 . El principio de funcionamiento de un escáner es la digitalización. Ratones Estacionarios. Funcionan en base al envío de una señal infrarroja o una onda de radio a una unidad receptora la cual es la encargada de enviar la información a la tarjeta correspondiente. no incorpora elementos mecánicos y por consiguiente no requiere de mantenimiento. Los escáner leen imágenes en dos dimensiones y las convierten en bits. que hace las veces de pantalla.

lo normal en la actualidad es un valor de 24 bits por píxeles. Escáner de mano: Es la alternativa más económica. que debe ser digitalizado para que nuestro periférico. el documento o imagen se coloca sobre un cristal bajo el cual la lente luminosa se desplaza. Escáner de Sobremesa: Representan la alternativa más profesional y de calidad. • Ahorra espacio Desventajas: • La poca fiabilidad en cuanto al proceso ya que depende de la habilidad y el pulso del usuario y mover el escáner de forma demasiado lenta o rápida puede afectar el resultado final. • Su precio. de introducir información en una computadora es por medio de una codificación de barras 297 . pero solamente envían a la PC 24 bits. a medio camino entre los dos anteriores. establezca los patrones necesarios. Escáner de Rodillo: Es una interesante alternativa. como su nombre lo indica utiliza como mecanismo de tracción un rodillo que recoge automáticamente el documento y lo digitaliza. muchos escáner de mano incluyen una hoja con diferentes tonalidades de color. para disminuir el intervalo entre una tonalidad y la siguiente. Hay algunos escáner capaces de utilizar 30 o incluso 36 bits de color. digitalizando el documento. Ventajas: • Permite obtener una gran calidad y fiabilidad. Tipos de escáner: Existen tres tipos : • Escáner de mano. Ventaja: • Es económico. La calidad obtenida no es tanta como los modelos de sobremesa pero es una excelente opción para usuarios con determinadas necesidades. A modo de pequeñas fotocopiadoras. Desventajas: • Su tamaño . aunque también más cara y realmente son los que más se están extendiendo. pero la mayoría lo hacen a nivel interno. • Escáner de rodillo. Aunque todos los modelos permiten la calibración cada vez se utiliza con mayor frecuencia- LECTORES DE CODIGO DE BARRA Uno de los medios más modernos y que está tomando cada vez más auge. puesto que elimina gran parte de los mecanismos que encarecen a los dispositivos de sobremesa: más correctamente el de tracción y que es el usuario el que mueve el escáner sobre la imagen o documento a digitalizar .puede adoptar. Los 24 bits de color se han convertido en un estándar . • Escáner de sobremesa. Calibración Estos dispositivos necesitan ser calibrados.

debido al desgaste producido en sus componentes por el uso continuado. Cada vez son más los productos que llevan en su etiqueta uno de estos códigos donde. El principal uso que se le da a estos subsistemas es el de control de mercaderías. Son una asistencia 298 . como pueden ser los que tienen en las cajas de algunos supermercados. pudiendo ser estas: • Tabletas Mecánicas • Tabletas Electrónicas. El microprocesador calcula cual es la posición sobre la pantalla de la computadora permitiendo manipular la información representada en ella. como así también el control de acceso de personal en instalaciones de distinta índole. este envía la información aun software especial que la maneja. siendo esta.. o bien en forma de lápiz óptico . Los lectores de código de barras captan los datos de entrada al sistema informático al hacer pasar delante de un censor óptico la serie de barras verticales codificadas. etc. La mecánicas. en la pantalla de la computadora. un decodificador convierte los pulsos eléctricos en código binario para su tratamiento en la computadora. Para operar con el lápiz óptico se coloca este sobre la pantalla del sistema informático. por medio de las barras verticales de color negro. Esta codificación ha sido definida de forma estándar por la Organización de Estándares Internacionales y. Las tabletas digitalizadoras convierten una serie de coordenadas espaciales en un código binario que se introduce en la computadora. por ello. etc. señalando puntos en ellas y realizando operaciones de manejo de software. Los lápices ópticos permiten la introducción de datos. son menos precisas y más delicados de manejar que las electrónicas. Estas coordenadas serán manejadas posteriormente por programas de dibujo. el lector de tarjetas envía los datos n forma de bit a la unidad central del sistema de la computadora para su tratamiento. Existen diversas tecnologías de construcción de tarjetas. se consigue una identificación para todo tipo de productos. Una posibilidad de manejo muy intuitiva convierte a las tabletas digitalizadoras en unas herramientas muy útiles y polivalentes en los sistemas informáticos de diseño y manejo de gráficos. LAPIZ OPTICO: Los lápices ópticos son dispositivos de introducción de datos que trabajan directamente con la pantalla de la computadora. ingeniería. El censor lector de las barras convierte el código de barras en impulsos eléctricos que representa la información contenida en la etiqueta. En el momento en el que el cañón de rayos catódicos de la pantalla barre el punto sobre el que se posiciona El lápiz. cada una de las líneas tiene un determinado valor dependiendo de su presencia o ausencia y también de su grosor . Tras leer la información de la banda magnética de forma similar a como lee la información la cabeza lectora de un disco duro.verticales. A su vez. el manejo del cursor. LECTORES DE TARJETAS MAGNETICAS Los lectores de tarjetas magnéticas leen la información impresa en una banda magnética de manera semejante a como la grabadora lee la música de la cinta. TABLETA DIGITALIZADORA Son herramientas que permiten el manejo del cursor a través de la pantalla del sistema informático y facilitan una importante ayuda en el tratamiento de los comandos de órdenes en aplicación de CAD / CAM (Diseño asistido por computadora). La tableta suele tener impresos en su armazón pulsadores con símbolos dibujados para ejecutar de modo directo comandos que agilizan el trabajo de manejo de software. en ella. Los censores lectores de barras pueden estar fijos en una estructura de diferentes tamaños y tecnologías. la más extendidas comercialmente en el mercado. Estas tabletas poseen una resolución de alrededor de una décima de milímetro y pueden manejar gráficos en dos y tres dimensiones.

Los discos duros tienen mayor capacidad de almacenamiento sobre el mismo espacio que los discos flexibles. Discos Los discos son dispositivos que están fabricado en un material rígido o flexible y se utilizan habitualmente como periféricos de apoyo al proceso de la computadora. debido a que la portabilidad. las cintas magnéticas tradicionales se están relegando poco a poco a simples soportes de almacenamiento de datos históricos del sistema informático o de procesos periódicos de copias de seguridad.para la limitaciones de los teclados en algunas aplicaciones. llamados también de memoria auxiliar. Los periféricos de almacenamiento se pueden clasificar de acuerdo al modo de acceso a los datos que contienen: • Acceso Secuencial: debe seguir una secuencia donde la información que requiere. Se diferencian entre sí en el soporte sobre el que se deposita la capa de material magnético. En la actualidad. etc. La clasificación de los tipos de discos magnéticos es de carácter físico. siendo el principal medio de almacenamiento de la información que utilizan las computadoras. son unos dispositivos en los que se almacenan. debido a que aquellos tienen una mayor densidad de pistas por pulgada. Los discos magnéticos se clasifican en: • Discos Flexibles (floppy disks ) • Discos Duros (hard disks) Una computadora personal posee una o dos unidades para trabajar con discos flexibles. El tamaño de los discos que se utilizaran en las disqueteras puede ser de 31/2 pulgadas (unidad "A") o de 5 1/4 pulgadas (unidad "E").). sin tener que pasar previamente por la entre el principio de la superficie de grabación y el punto donde se almacena la información buscada. PERIFERICOS DE ALMACENAMIENTO: Los periféricos de almacenamiento. Habitualmente se les conoce como memoria masiva. los datos que va a manejar la CPU durante el proceso. La principal ventaja que poseen los disquetes frente los discos duros es su portabilidad. 299 . Es evidente la reducción de tiempo que presenta el acceso aleatorio frente al secuencial. sobre todo las que no son de gestión puras ( creativas. precisamente su ventaja. El acceso a la información almacenada se realiza en forma aleatoria. pero la utilización de la tecnología de acceso secuencial se debió ala implementación de la cinta magnética. y que no es posible mantener en la memoria principal. A estas unidades de trabajo se las denominan disqueteras. anterior a la puesta en marcha operativa del primer periférico de acceso aleatorio . Los discos duros generalmente se denominan unidad "C". puede estar al principio o al final del soporte que lo contiene. es decir que si o si debe recorrer todo el espacio ocupado hasta donde se encuentre la información solicitada• Acceso Aleatorio: el elemento de lectura accede directamente a la dirección donde se encuentra almacenada físicamente la información. temporal o permanentemente. La velocidad de acceso a la información es considerablemente mayor en los discos duros que en los disquetes debido a la mayor velocidad de giro de los platos de los discos duros ya que no existen fricción entre las cabezas lectoras y los platos del disco. implica que sean muy vulnerables a los malos tratos por una manipulación descuidada cuando se encuentran fuera de las disqueteras de la computadora. Discos flexibles Son unos de los componentes más delicados del sistema informático.

mientras no sea utilizado el soporte físico. La mejor protección de los discos que tienen formato de 31/2 pulgadas. un pequeño agujero de control que sirve para detectar el comienzo de cada pista y una abertura en la cubierta de plástico que le permite ala cabeza lectora el acceso a los discos. mientras que. 2. El material sobre el que se construyen los disquetes flexibles es un plástico. ello aumenta en gran medida la seguridad de los datos que contienen. en los discos duros. una para cada una de las diferentes superficies en que se divide cada placa. Disco duro El primer disco duro surge a mediados de los años cincuenta diseñado por mM. se presenta en: Fiabilidad del soporte. aunque todavía no se estén comercializando. 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. el soporte físico es una base de aluminio. plástico o metálico. que protege una ranura existente en la superficie del material protector del disco (la ventana de lectura) que los discos de 5 1 14 pulgadas. La superficie útil total del disco duro se divide en: 300 . En la actualidad. además del tamaño ya reseñado. El mecanismo de rotación se engancha a dos muescas situadas en la parte inferior de un eje de rotación metálico. Tenia un tamaño aproximado de un televisor y sólo podía almacenar 5 megabytes de datos. En la actualidad se están desarrollando otros formatos de discos flexibles más pequeños que los existentes.Actualmente existen dos formatos de discos flexibles que se diferencia según la longitud de su diámetro: los de 5 1/4 pulgadas y los de 31/2 pulgadas. Los discos flexibles con formato de 31 12 pulgadas están mucho mejor protegidos por un plástico rígido y un escudo. Disco flexible de 5 1/4 pulgadas Los disquetes de 5 1/4 pulgadas se protegen mediante una cubierta de plástico cuyo interior es antiestático y autolimpiante. Las diferencias entre los dos formato s. envueltos en un plástico de mucho menos grosor y sin protección en la ventana de lectura Facilidad de manejo y almacenamiento. le dan importantes ventajas sobre los discos de 5 114 pulgadas. Poseen un agujero central que le sirve para encajar en el mecanismo de rotación. 1. Disco flexible de 3 1/2pulgadas Poseen una cubierta de plástico mucho más rígida que la de los de 5 1/4. su facilidad para el manejo habitual y las menores restricciones para su almacenamiento. Los discos duros son el principal subsistema de almacenamiento de información en los sistemas informáticos. Es este ultimo formato el que se está imponiendo en estos momentos por su mayor seguridad y facilidad de manejo. que oscilan entre una o dos pulgadas. que es la única parte del disco que sobre sale del exterior . La lectura de la información grabada en los discos flexibles se realiza mediante una cabeza lectora que entra en contacto directo con la superficie del disco a través de la ranura de la funda de protección. El interior de un disco duro se compone de unas o varias placas cuya superficie está magnetizada y una serie de cabezas lectoras. su tiempo medio de acceso era aproximadamente de medio segundo.

• Cilindros: El cilindro está formado por la totalidad de las superficies útiles existentes en las diferentes placas que forman el disco duro. Estos habitáculos están situados en la carcasa de la computadora o bien conectados a ésta por medio de un cable interfaz. La razón por la que se realiza esta división es que la superficie de una placa del disco es limitada. Por ello nunca debe abrirse la carcasa de protección de un disco duro excepto por personal técnico en las condiciones adecuadas. seguridad y capacidad de almacenamiento que convencionales de almacenamiento magnético (disquetes y cintas). la información se graba en paralelo puesto que están compuestas de 9 pistas paralelas. El disco duro que se instala en la unidad central del sistema de una microcomputadora se denomina Winchester . cada una con su dispositivo de lectura-escritura se aumenta la capacidad de almacenamiento del disco. Su similar ala de los "compact disks" (disco de música) pudiéndose almacenar megabytes de información por cada disco. La carcaza es de un material rígido. 2. que permite una los subsistemas base técnica es alrededor de 600 301 . que . por ello es mucho mayor el tiempo de vida medio de estos subsistemas de almacenamiento. Existen dos tipos principales de discos duros: 1. en las cintas.• Pistas: Se denomina pistas a cada una de la circunferencia de placa del disco. Discos fijos: Los discos fijos se fabrican dentro de una carcasa sellada de la que no se puede extraer. La principal ventaja del método Winchester es que ni 1a superficie del disco ni la cabeza de lectura sufren desgaste por el razonamiento. En los discos la información se graba en serie. La división del disco se realiza para hacer más rápido el acceso a la información almacenada en la superficie. Disco removibles: Los discos removibles están montados en un contenedor. ya que las pistas tienen un bit de ancho. pero si se instalan varias placas superpuestas dentro de la misma carcasa del disco duro. metálico o plástico de gran dureza que sirve para proteger físicamente los discos y cabezales situados en el in6terior del subsistema. • Sectores: El sector la mínima cantidad de información que se maneja al realizar un acceso al disco. ya que para la cabeza lectora es mucho más sencillo saber que la información a localizar está. Las pistas se dividen en pequeños espacios de similar tamaño donde se graba la información. por ejemplo. en la pista 3 sector 5 que tener que buscar esa información por toda la longitud de la pista 3 . también sellado. Esta tecnología se caracteriza porque la cabeza lectora no toca físicamente al disco duro. 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. Discos opticos: Los discos ópticos son un medio de almacenamiento de información mayor flexibilidad.les permite entrar y salir de unos habitáculos especiales.

Al final la batalla la ganó el sistema VHS por el gran número de películas que se lanzaron en dicho formato ya pesar de que la cantidad de imagen y sonido era inferior ala ofrecida por Betamax. de la misma manera que ahora se utilizan los discos. La primera unidad de cinta se comercializó a primeros de los años cincuenta. lanzaron al mercado el video-cd. El inconveniente es su lentitud. Técnica láser: La técnica láser graba la información agujereando.En estos momentos la principal función de los discos ópticos es la distribución comercial de software debido a su gran capacidad de almacenamiento. mediante un rayo similar. debido a sus limitaciones. 2. Existen dos tipos diferentes de discos ópticos. y se podía acceder a diferentes secciones de la película. Los fabricantes volvieron a digitalizar y comprimir las películas mediante tecnología MPEG-1 . Cada posición de un agujero es un bit que tomará uno de los dos valores posibles del código binario. se utilizan generalmente sólo como soporte de copias de seguridad. La ventaja de esta seguridad técnica es la no destructividad. Fueron el primer subsistema que utilizó un medio magnético como soporte de almacenamiento masivo de información. DVD: La cinta de video permitió a los poseedores de aparatos reductores/ grabadores poder ver y grabar películas y programas de TV . dependiendo de la posición del escrito o no sobre el disco: 1. mediante un rayo. La diferencia entre las cintas magnéticas y el disco es el tipo de acceso. La principal ventaja de utilizar este tipo de soporte es su bajo costo. En su origen las cintas magnéticas se utilizaron como unidades de almacenamiento y apoyo al proceso de información. había que darles la vuelta y sobre todo. pudiéndose grabar información varias veces sobre la misma superficie. también es que no puede utilizar toda su longitud para almacenar datos. un soporte sensible a su acción y lee. que ofrecía gran calidad de imagen y 302 . Los discos eran demasiados grandes. en las cintas magnéticas el acceso es puramente secuencial mientras que en el disco el tipo de acceso es de forma aleatoria. es decir . El soporte físico sobre el que se construye la cinta es una tira de plástico de media pulgada (1. comparada con los demás medios de almacenamiento actuales. los discos duraban más. la información grabada también es permanente.el sonido era equiparable al del Compact Disk. la información contenida en el soporte. Como los agujeros son permanentes. si bien en la actualidad. Para solucionar esta carencia se creo el Láser Disk. no se podía grabar.44 megabytes un tamaño similar al de un disquete de 31/2 pulgadas. Uno de los problemas a los que se enfrentaron en un principio fue la existencia de dos formatos incompatibles entre sí: VHS y Betamax. poseía una capacidad de almacenamiento de 1.25cm) de ancho y unos 800 metros de largo sobre la que se deposita una capa de un material magnético donde se realiza la grabación y lectura. La cantidad era superior . el láser no realiza agujeros como en el caso anterior. Cintas magneticas: Las cintas magnéticas son el tipo más elemental de los periféricos destinados al almacenamiento de datos. Técnica magneto-ópticas: Las técnicas magneto-ópticas se basan en un material de una superficie magnética que al ser calentado a gran temperatura por el láser e inducido por una corriente eléctrica cambia su polarización magnética y se almacena la información.

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. Al ser un soporte óptico las películas no se deterioran con el uso. Luego surgió el disco de doble cara ya la vez de doble capa llamado Digital Vídeo Disk o DVD. El cambio del nombre se debió a que no solo serviría para almacenar vídeo sino que también podría almacenar datos y sonido .6 Gb la duración se ve limitada a solo una hora de vídeo. Para leer estos micro-puntos hace falta un láser de menor grosor que el convencional se pasa de unos 780 mm de longitud de onda del CD-ROM a los de 635 a 650 mm del DVD. La diferencia es que en esta ocasión se ha optado por la compresión MPEG~2 bastante mas avanzada que su predecesora . Al hacer uso de la Tecnología de comprensión MPEG se llega a una cantidad que ronda el medio megabytes por segundo. Incluso mantiene la compatibilidad con los CD de audio. mientras que Philips y Sony hicieron lo propio el MMCD (multimedia CD) pero con un disco de una sola cara aunque con dos capas. Al reducir el grosor de la capa de grabación a la mitad se ha permitido dotar a un mismo disco de dos caras y se ha dividido cada cara en dos capas diferentes. el nombre paso a ser digital Versatile Disk. pero no lo es tanto en el campo del vídeo domestico: un usuario solo opondría grabar una sola vez en cada disco. que podrán escucharse sin problemas en cualquier reproductor . así como la distancia existente entre estos dando lugar a una mayor densidad de grabación en un mismo espacio. 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). y es aquí donde entra en escena el DVD-RAM sobre los diferentes metales en los 303 . La idea de formato CD era buena pero se necesitaba conseguir mayor calidad a base de aumentar la capacidad de los discos. La compresión MPEG-2: Al igual que sucede con el video-cd o el CD-I . La utilidad de estos discos en el campo de la informática es evidente. Lo primero que se ha hecho ha sido reducir y compactar el tramado de pits o puntos que se asientan sobre la superficie del disco. 8 idiomas simultáneos y 32 subtítulos diferentes. Poco después. la división de la señal de vídeo en dos o mas canales a diferente resolución o la inclusión de canales de datos diferenciados.7 Gb de datos). para almacenar únicamente 6 minutos de vídeo. lo que ya de por si le permite almacenar 133 minutos de vídeo de alta calidad. Debido a la gran capacidad de almacenamiento permitirá su uso como backup o copias de seguridad. y viendo el potencial que podría tener en el mundo de la informática.sonido sobre un soporte mas extendido como era el CD. Prestaciones del DVD: El disco "básico" de DVD consta de una sola cara y una sola capa (equivalente a 4. El futuro del DVD: El DVD va a permitir la escritura de discos por medio de unos grabadores llamados DVD-R. El disco por dentro: Dado que en un CD-ROM podían almacenarse 680 Mb y el DVD llega a almacenar 17 Gb ha hecho falta almacenar la información de forma diferente para dar cabida a tanta cantidad de datos. Para mejorar el enfoque y la calibración se ha sustituido el haz infrarrojo por un haz rojo. en el DVD el tamaño de estos puntos se ha visto sustancialmente reducido. Si además se hace uso de las dos caras y las dos capas se llega ya alas 8 horas de vídeo. tres pistas de sonido Dolby Digital y cuatro conjuntos de subtítulos para otros tantos idiomas. y dado que su especificación solo permite una capacidad de 2.la imagen se encuentra comprimida pues de no ser así se necesitaran 700 Mb. y uno siempre obtiene la máxima calidad en pantalla.

000 colores de la SVGA. El mayor inconveniente de este tipo de pantallas de computadora era que debían ser monocromas porque no podían manejar color. En estos momentos casi todos los sistemas informáticos comerciales se configuran con pantallas de color . Las pantallas de computadora de rayos catódicos pueden ser monocromas ( de un solo color. Pantallas de computadora de plasma: Son el tipo de pantallas que se están imponiendo actualmente en los sistemas informáticos portátiles. Los pixels del monitor forman una matriz de puntos de luz que dibujan la imagen de cada uno de los caracteres que aparecen en la pantalla de la computadora. Las pantallas de los monitores muestran una imagen del resultado de la información procesada por la computadora. normalmente verde. aunque algunas pantallas de computadora pueden mostrar hasta 256 caracteres por el modo extendido de dicho código. alcanzando una mayor definición y la posibilidad del color. por ejemplo 21 pulgadas para sistemas informáticos de autoedición. El tamaño de la pantalla de computadora más habituales entre los actuales sistemas microinformáticos suelen ser el de 14 pulgadas. 3. Pantallas de computadora de cristal líquido: Las pantallas de computadora de cristal líquido se utilizaron en algunos sistemas informáticos portátiles por su mayor manejabilidad y menor tamaño que las pantallas de rayos catódicos. puesto que tiene las misma ventajas que las anteriores. La imagen formada en la pantalla de la computadora tiene una unidad elemental llamada pixel.discos se puede sobre escribir cerca de 1000 veces. etc. PERIFERICOS DE SALIDA: Los periféricos de salida son las unidades del sistema informático a través de las que la computadora entrega información al mundo exterior . PANTALLAS DE SISTEMAINFORMATICO (Monitor): Es el periférico más utilizado en la actualidad para obtener la salida de las operaciones realizadas por la computadora. si bien existen tamaños de pantallas diferentes para sistemas informáticos especializados. Los sistemas informáticos portátiles suelen tener tamaño de entre 9 y 14 pulgadas. blanco o ámbar) o policromas. En la actualidad. sé esta experimentando con periféricos de salida mucho más intuitivos y fáciles de comprender para el hombre como los sintetizadores de voz. pero se diferencian de manera importante en su modo de funcionamiento. Pantallas de computadoras de rayos catódicos: Este tipo de pantallas de computadora son similares a las pantallas del televisor. El tamaño lógico de la pantalla de los sistemas informáticos se mide por el número de 304 . Las pantallas de computadora de rayos catódicos son el tipo de tecnología de pantalla de sistemas informáticos más extendidos en la actualidad entre las computadoras comerciales. El tamaño lógico de las pantallas de los sistemas informáticos se determinan de forma distintas en dos diferentes modos de trabajo vistos anteriormente en el apartado de las tarjetas gráficas: Modo de texto: Las pantallas del sistema informático sólo pueden mostrar los 128 caracteres definidos por el código ASCII. La tecnología de los periféricos de salida ha evolucionado mucho desde que la computadora entregaba su respuesta en una cinta o en una hoja de papel. Los colores que pueden aparecer en la pantalla de un sistema informático están determinados por la paleta de colores. Las paletas oscilan entre los cuatro colores básicos de la CGA y 256. En la actualidad se puede ver sobre todo en algunos tipos de calculadoras. Las pantallas de las computadoras pueden tener varios formatos entre los que se pueden destacar: 1. 2.

P. Impresoras Su función en el sistema informático es obtener una copia en papel de la información existente en memoria o en disco. Este tipo de impresora son una evolución tecnológica de los antiguos modelos de máquinas de escribir donde se han mejorado las prestaciones de velocidad y de forma de impresión. La introducción de circuitos integrados en los mecanismos de las impresoras a permitido una mayor flexibilidad y potencia con respecto a las primeras teletipos completamente electromecánico que actuaban como periféricos de salida en algunos sistemas informáticos antiguos. Impresora de Bola: 305 .Impresoras de bolas. Impresoras con cinta entintada: La principal característica de las impresoras de cintas entintadas es un método de impresión: Una cinta humedecida con tinta que golpea contra el papel por un tipo metálico o un grupo de agujas formando un carácter . . El número de punto puede llegar los 1280 puntos por 1024 filas en las tarjetas gráficas SVGA. Un pequeño punzón golpea contra la cápsula y así al martillar el tipo se imprime el carácter deseado. las impresoras pueden dividirse en: • Impresoras con cinta entintada. prácticamente todas las tarjetas controladoras de los subsistemas de vídeo de las computadoras trabajan en modo gráfico. que se encuentre en líneas con la computadora a la espera de recibir datos que el usuario a solicitado imprimir .filas y el de columnas de caracteres que pueden representar en la pantalla de la computadora. La impresión se hace cuando una cápsula que tiene un relieve del tipo a imprimir se encuentra enfrentada al papel. . Para que una impresora pueda funcionar correctamente debe estar en posición ONLINE. Es evidente la mayor potencia del medio gráfico que el modo de texto. Dependiendo de su tecnología de construcción.U. El tamaño lógico de la pantalla de la computadora está directamente relacionado con la cantidad de información en forma de puntos por filas que proporciona la tarjeta gráfica conectada a la pantalla del sistema informático. Modo Gráfico : La pantalla del sistema informático se divide en una serie de punto de información que aparece en su superficie. La instalación de memoria intermedias y otras de ayudas electrónicas ha ayudado a mejorar los subsistemas de impresión al descargar partes de las tareas de impresión desde la C. en estos controles internos de la impresora. en la actualidad. por ello. Su mecanismo se compone de una rueda alrededor de la cual están colocados los caracteres alfanuméricos que se pueden imprimir .Impresoras láser color.Impresoras térmicas .Impresoras láser.Impresoras de margaritas . Sus principales ventajas son el bajo costo y la facilidad de construcción. y sus principales inconvenientes son su lentitud y el ruido que causa al golear sobre la cinta para conseguir la impresión. • Impresoras sin cinta entintada. lo que quiere decir. . . Es un tipo de impresora antiguo que ha sido retirada de algunos lugares por su lentitud.Impresoras de películas gráficas. El tamaño más expendido es el de 24 o 25 líneas y 80 columnas.Impresoras de agujas. .Impresoras de inyección de tintas .

sobre todo. Esta tecnología ha ido retirándose poco a poco del mercado debido a que el paso del tiempo. Aunque en la actualidad es comúnmente utilizada por los equipos de fax. Impresoras de inyección de tinta: Las impresoras de inyección de tinta. cada una de ellas tiene la posibilidad de un cierto movimiento horizontal. 306 .Son similares alas impresoras de margaritas pero de mejor calidad. Esta tinta es la que finalmente forman los caracteres. también llamada chorro de tinta. Un disco de espejo desvía al rayo barriendo repetidamente el tambor fotoconductor. 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. quedando los caracteres trazados eléctricamente sobre el tambor . Para poder controlar la inyección de la tinta están situadas a cada lado de la boca del cañón de tinta unas placas magnéticas que controlan el chorro de tinta disparado por el cañón hacia el papel para formar el carácter . La velocidad de impresión es algo más lenta que en las impresoras láser de tinta negra. 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 láser. Con esta capacidad se puede generar matrices de 7 por 5 o 9 por 7 puntos con los que se forman los diferentes caracteres. Impresoras sin cinta entintadas: Se caracterizan por la tecnología de su método de impresión al no necesitar una cinta humedecida en tinta para imprimir. debido a que aquí se deben gestionar tres colores de tinta diferentes. La impresoras láser son las que poseen una tecnología de impresión más rápida ( entre 4 y 8 paginas por minutos) y también una mayor definición de caracteres o gráficos que van a formar el resultado final. Impresoras láser: El fundamento de este tipo de impresoras es un láser de baja potencia que genera un rayo que es manejado por un elemento de control que permite o bloquea el paso de la luz. la luz y. obteniendo entre 300 y 600 puntos por pulgada. Impresoras Láser de color: El funcionamiento de las impresoras láser de color es similar alas impresoras láser en blanco y negro. Permiten su uso en lugares de trabajos sin equipos especiales de protección acústicas. en lugar de utilizar un papel normal. Los caracteres se sitúan sobre una esfera metálica que posiciona al carácter en el punto de impresión y golpea ala cinta entintada para imprimirlo. Al no producir un impacto para realizar la impresión del carácter. Impresoras térmicas: El método es similar a las aguja. pero se diferencian en que. utilizan un papel especial termo sensible y en lugar de las agujas utilizan unas resistencias eléctricas que al calentarse y apoyarse sobre el papel. van generando loS caracteres. deteriorándose con el tiempo. utilizan una especie de cañón a través del cual se envía un chorro de tinta líquida hacia la hoja de papel donde se va a realizado se va a realizar la impresión. pero en lugar de utilizar un solo dispositivo de tinta utiliza tres dispositivos con los colores fundamentales que se imprimen con una mayor o menor saturación sobre el papel para formar el color deseado en ese punto. el calor afectaban mucho al papel termo sensible. estas impresoras son mucho más silenciosas. La disminución de los preciso de este tipo de impresoras han determinado su amplia difusión en el mercado.

En general. es quizás el más problemático de todos. Esta conexión semi-digital obliga a varios compromisos. se convierten en digitales y. Aspectos técnicos La tecnología 56 K es algo diferente que la de los Modems analógicos de 14. no se podrán utilizar los 56 K y la velocidad de conexión estará limitada a 28. son útiles para acceder a Internet. Poco a poco. En cuanto al segundo punto. estas nuevas técnicas tratan el sistemas telefónico como una red digital que tiene una porción analógica. en el -5egmento final ante de llegar al proveer de servicios. Los Modems 56 K consiguen una velocidad de transmisión más elevada que los módems tradicionales. El más importante ellos es que el Proveedor de Servicios de Internet debe poseer líneas telefónicas digitales. El Módem es un Modulador/Demodulador (de allí su nombre). El tercer requisito.. Se evita así. sin embargo. permiten una velocidad de transmisión mayor ala de las análogas. sin embargo. además. La línea telefónica análoga es el factor que limita la velocidad de transferencia de los datos debido al ruido que introduce en las transmisiones. Por ejemplo. Después demodula esta señal que entra en el ordenador convirtiéndola de nuevo al formato digital. Las líneas. Las conexiones normales se inician sobre una línea analógica. todas las redes telefónicas se están convirtiendo al formato digital. ya que necesita de los sistemas de un ISP en uno de los extremos de la conexión. Si hay más de uno. La compañía telefónica las convierte en digitales y vuelven a convertirse en analógicas. Para averiguar si nuestra línea telefónica soporta la velocidad de 56K. Cuando se compra 307 . las comunicaciones de módem a módem. no pueden aprovechar las mayores velocidades. En el mercado hay muchos dispositivos de este tipo y cada día aparecen nuevos modelos. sin embargo. Para alcanzar la velocidad 56K. límite en la velocidad de transmisión. Los Modems 56K tiene sentido para algunas aplicaciones aunque no para otras.000~ 28. solo debe hacer un proceso de conversión analógico / digital entre el ordenador y el ISP.660. El Sistema Telefónico como una red digital con una porción analogica Los fabricantes de Modems han creado técnicas que utilizan las ventajas de esta porción digital de la red telefónica para conseguir mayores velocidades de transmisión puramente analógica. la única prueba totalmente fiable es conseguir un módem 56K y llamar a nuestro ISP . Como usar la Tecnología 56K Para aprovechar todas las ventajas de la tecnología 56 K se necesitan tres cosas: 1) Un módem 56 K 2) Un Proveedor de Servicios de Internet que soporte 56K 3) Una línea telefónica que soporte 56K Conseguir el módem es muy fácil.PERIFERICOS DE COMUNICACION. Para alcanzar mayores velocidades deben utilizar conexiones parcialmente digitales. Las conexiones 56K comienzan siendo analógica. suelen analógicas t y trasmiten los datos como una señal continua con una serie de picos y valles. MODEM Los ordenadores trabajan con información digital (todos los datos) se almacenan en forma de 1 y O. no se vuelven a convertir en analógica en el proveedor de servicios. Las líneas digitales también generan ruido y tienen un.8 o 33. Pero tiene menos ruido y.6K. una conversión desde una línea digital a otra analógica en la conexión entre el usuario y el Proveer de Servicios.000 y 33. muchos ISP ya soportan algunos de los protocolos 56K o planean hacerlo en un futuro cercano. Modulas los datos digitales que salen del ordenador convirtiéndolos en una señal analógica.

308 . Hubo que investigar en distintos libros y revistas y así ir determinando lo que cada integrante debía realizar para lograr un buen fin. Capacidad de la RAM. Además. Sistema operativo. estas actualizaciones permiten mejorar el rendimiento y eliminar errores de forma rápida y sencilla sin tener que comprar un módem nuevo o enviarlo a la fábrica para que actualicen su hardware. y elegir para nuestra conveniencia y alcance los demás periféricos. CONCLUSIÓN Al haber realizado el trabajo de investigación nos ayuda a tener una idea concreta sobre los tipos de periféricos analizando y determinando en cada caso cual es el más conveniente para el usuario. También nos ha dejado como enseñanza que en el momento de adquirir un equipo debe tenerse en cuenta distintos aspectos como ser: Velocidad. A merced de esto el trabajo grupal ayuda a establecer pautas que se deberán seguir a medida que se progresa en la investigación.un módem hay que asegurarse de que este pueda ser actualizado (preferiblemente mediante un programa software gratuito) para hacerlo compatible con el estándar 56K definitivo. Servicio Técnico.

CONCLUSIÓN 309 .

BOLILLA VI (PARTE 2): TÉCNICAS Y DISPOSITIVOS DE ENTRADA SALIDA 310 .

..................................................................................................................27 INTRODUCCIÓN.......37 Implementación de funciones booleanas ......................INDICE INDICE GENERAL...........15 Unidad de Control:..1 BOLILLA I: LA COMPUTADORA..........................................................................................................35 COMPUERTAS Y ALGEBRA BOOLEANA...........................................................................................................................................................................................................................................................................................................................5 INTRODUCCIÓN........................................................19 Ejemplo de encadenamiento margarita:.................................................................22 SISTEMA OPERATIVO...........................13 Para qué sirve una computadora?:........................................................................................15 Memoria:(Memoria Central).....................................21 Selector...................................................................................................................................................13 Computadora y Circuitos:..............................................................20 Canales de e/s.............................................................................................................................14 Al software se lo clasifica en dos grupos: ...............................................................35 Algebra booleana..........................................................................................................................................34 EL NIVEL DE LOGICA DIGITAL........................................................................................................................................................................................23 Introducción: ......................................................................................................................................20 TECNOLOGÍA DE CANALES:..................................................................................14 Software: ...................18 Arbitraje del bus:............15 Núcleo de la computadora: .....................13 FUNCIONES Y ACCIONES:......15 Unidad aritmético-lógica:........................................................................35 Compuertas.......................................................................................................................................19 Solicitud del Bus......................................................................................................................................................................................................................................................................................15 Arquitectura .....Componentes Básicos:.................................19 Manejo de interrupciones:.........................................................................................................15 BUSES DE COMPUTADORAS:..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................16 Buses síncronos y asíncronos: ...................................................................................12 LA COMPUTADORA..................................................................21 TIPOS DE CANALES:..................................................................................................................................................................................................................13 CONCEPTO:.................................................................................................................38 311 .............................................................................................................................................................................22 Spoll: ...........................................26 INDICE.............................................................................................................................4 INDICE.................................................................24 CONCLUSIÓN........................................................................................................................................................25 BOLILLA II (Parte 1): EL NIVEL DE LOGICA DIGITAL............................................................21 Multiplexor: ................................................................................19 Dispositivos de E/S........................................................................................................22 Multipexor por bloques: .................................14 HARDWARE Y SOFTWARE: ......14 Hardware:.......................................................23 ¿QUÉ ES UN SISTEMA OPERATIVO?...........................................................................15 Periféricos: ...........................................................................................................

...........................................................89 REPASO SOBRE EL NIVEL DE LÓGICA DIGITAL ...........................................................88 EL NIVEL DE MICROPROGRAMACIÓN ..................................................................................................................................49 Comparadores .....................60 Organización de las memorias...................................................................................................................53 Registros de corrimiento..................................................................................................................................................................61 Propiedades de las memorias............................................................59 Biestables D sincronizados..........................................................................................................................................................................................74 Manejo de interrupciones ..................................................................66 Buses de computadora........................................................................................................................59 Flip-flops y registros.................................................................................................................57 Bieslables SR sincronizados...................................................66 Microprocesadores ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................Equivalencia entre circuitos...........................................................................................................................................................................................................................92 Unidades aritméticas y lógicas y registros de corrimiento ....................................55 MEMORIA.....................................................................................................................51 Circuitos aritméticos..............................................................................................................................95 UNA MICROARQUITECTURA TIPICA ..........103 312 ..............................47 Multiplexores ...................................................................94 Encapsulado de los componentes ....................................................................................................90 Registros ..51 Arreglos (matrices) lógicos programables ................44 Circuitos combinacionales ................................................................................................................96 La ruta de datos .................68 Buses síncronos ......................98 Cronología de las microinstrucciones ................................................................................................................103 Pilas ........................................................................................................................................................................................................................................................................................................................................................................................53 Sumadores .........................102 UNA MACROARQUITECTURA TIPICA ..........................................................................................................70 BUSES ASINCRONOS........................................................................................................................55 Relojes ...............................................................................................................................44 Circuitos integrados ........59 Registros......................................................81 INTRODUCCIÓN...........93 Memoria principal .................64 MICROPROCESADORES y BUSES........................................................................................80 INDICE................................................................79 BOLILLA II (Parte 2): EL NIVEL DE MICROPROGRAMACIÓN.............................................................................................................................................................................................................................................................................................54 Unidades aritméticas y lógicas.................................................................................................96 Microinstrucciones .............................................................................................................................................................................................100 Secuenciamiento de las microinstrucciones ........................................................................................................90 Multiplexores y decodificadores ...................................................73 Arbitraje del bus ..........................57 Biestables.........................92 Relojes ...................40 CIRCUITOS DIGITALES BÁSICOS............................................................................47 Decodificadores ........................................................................................................................................90 Buses .......................................................................................................................................77 CONCLUSIÓN.......

.................................................................................173 Procedimientos ......................................................................................................................151 Direccionamiento indirecto..............................144 FORMATOS DE INSTRUCCIÓN................................................................................................................162 Comparaciones y Saltos Condicionales.................................................................................................................................................................................152 Direccionamiento por medio de pilas.................................................................................................................153 Notación polaca inversa............................................................................166 Control de iteraciones ......................................................................................................................................................144 EJEMPLOS DEL NIVEL DE MAQUINA CONVENCIONAL.............................................................................................................................................................................161 Operaciones unarias .......147 Ejemplos de formatos de instrucciones.................................................................................................................107 MICROPROGRAMACIÓN: UN EJEMPLO ..................157 Ejemplos de direccionamiento.115 Nanoprogramación ...........111 Observaciones sobre el microprograma ..........157 Algoritmo....135 INDICE..........................160 Direccionamiento en la PDP-11..................................................................................115 Microprogramación horizontal frente a microprogramación vertical..........................................113 Perspectivas ..150 Direccionamiento directo........................................................................................................................160 Instrucciones de movimiento de datos ..............................................................................168 Flujo De Control ......................................................................157 Algoritmo.................146 Códigos de operación con extensión..................173 Flujo de control secuencial y saltos ...........................................................................................................................................................................145 Criterios de diseño de formatos de instrucción....................................................................................114 EL DISEÑO DEL NIVEL DE MICROPROGRAMACIÓN .........................................................................................................................................................151 Indexación...................................................................150 Direccionamiento de registros............................179 313 ......................................................................164 Instrucciones de llamada a procedimiento ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................110 El lenguaje micro ensamblador ...............129 CONCLUSIÓN...............................................................................................................................................................................................................................................................174 Corrutinas ....................134 ...........................................................................................................................................................................167 Entrada / salida .......161 Operaciones binarias .....................................................................................................143 EL NIVEL DE MÁQUINA CONVENCIONAL...................................................................................................136 INTRODUCCIÓN...................................................................................................149 La PDP-11.............................................................149 Direccionamiento.....................122 Mejora del rendimiento .............................................................................................................El juego de macroinstrucciones ............................................................................................................123 Memoria caché ..........................................................135 BOLILLA II (Parte 3): EL NIVEL DE MAQUINA CONVENCIONAL..........149 Direccionamiento inmediato........................................................................................................................................................................................................160 Tipos de Instrucciones ......................................................................................................................................................155 Evaluación de fórmulas en la notación polaca inversa.........................110 El ejemplo de microprograma ......................................................................

.............................................207 FASE DE BÚSQUEDA O ALMACENAMIENTO DEL OPERANDO ....................................223 MEMoRia .......................................................................................................................................................197 ESTRUCTURA GENERAL...........................................................................................................................................................196 ARQUITECTURA DEL PROCESADOR................................189 INTRODUCCIÓN....................................................224 DIRECCIONES DE MEMORIA .....................................................................................................................................................Desvios .......................................227 PARáMETROS y CARACTERíSTICAS MáS IMPORTANTES DE UNA MEMORIA 228 Capacidad.............................................................................................215 INDICE...................................240 314 ........................................216 INTRODUCCIÓN..............................211 INTERRUPCIONES ........226 CÓDIGOS CORRECTORES DE ERRORES .........................................................................187 BOLILLA III: ARQUITECTURA DEL PROCESADOR...................................................................................183 ACCIONES DE SOFTWARE ..........................................................................................229 Estructura de una RAM semiconductora ............................................................................. seguido de procesamiento: ..........................................202 LA UNIDAD ARITMÉTICA Y LÓGICA .............238 MODOS DE DIRECCIONAMIENTO .........................................................184 CONCLUSIÓN.236 Memorias asociativas ...............................................................235 Memorias de acceso serie ..................................................................................................................................................208 FASE DE PREPARACIÓN DE LA SIGUIENTE INSTRUCCIÓN ...........................................................227 CLASIFICACIÓN Y ORGANIZACIÓN DE LAS MEMORIAS ............................................188 INDICE..................................................................200 EJECUCIÓN DE LAS INSTRUCCIONES ....................................................................................................................................................................201 ORGANIZACIÓN DE LA CPU ......................................................................................................................................................................................................239 Modo de direccionamiento indirecto ......................207 Caso de almacenamiento del operando: ............................................................................................................229 Memorias de acceso aleatorio (RAM = Ramdom Acess Memory) ......206 FASE DE BÚSQUEDA DE LA INSTRUCCIÓN .....................................................................................225 ORDENAMIENTO DE BYTES .........231 Pastillas de memoria en paralelo ..........................................................................210 LAS UNIDADES PERIFÉRICAS .................................................................................................................................................................................................................................207 Caso de búsqueda del operando.........................................228 Formas de acceder a las posiciones de memoria .........................................211 CONCLUSIÓN.............................................204 LA UNIDAD DE CONTROL..............................................................................................................................214 BOLILLA IV: MEMORIA......................209 EL CANAL.............................................................................................................................................................................209 INSTRUCCIÓN DE RUPTURA DE SECUENCIA .....................................................................................................................................................................................................................................................................................................................239 Modo de direccionamiento directo .....................197 DESCRIPCIÓN DE LOS COMPONENTES DE UN PROCESADOR .........................................................................197 Microprocesadores.........................................................................................................183 ACCIONES DE HARDWARE .................................................................................................................................................................................................182 Interrupciones .............................................233 Memorias pasivas............................

.......................................................247 INTRODUCCIÓN..................................................................................................................................................................................255 INTRODUCCIÓN AL LENGUAJE ENSAMBLADOR ....................................................................................276 Tiempo de ligadura y reubicación dinámica .......................................................................244 CONCLUSIÓN................292 RESEÑA HISTÓRICA...........................................................................................292 PERlFERICOS DE ENTRADA: .......................................................261 La primera pasada .............................................................................................................291 PERIFÉRICOS............................................................................................................................................................269 Macros con parámetros ..........................................296 PANTALLAS TÁCTILES: ................................................242 Modo de direccionamiento por registro indirecto ..............292 INTRODUCCIóN ............................................................................245 .....................................................271 Implementación de macros en un ensamblador ....................254 EL NIVEL DEL LENGUAJE ENSAMBLADOR..................................................................................................................................................................................................................................................................262 La segunda pasada .................................295 Tipos de ratones...........................................................................................267 MACrOS ..............................................................................................................258 Afinación de programas ....................................................................................................................................................................................................................................................................................................................................296 Ratones Inalámbricos...........................................................283 INDICE.......................................293 Cuidados y advertencias..............243 Otros modos de direccionamiento .........259 EL PROCESO DE ENSAMBLAJE .................................................................... llamada y expansión de una macro ...261 Ensambladores de dos pasadas ............256 ¿Qué es un lenguaje ensamblador? ......296 BOLAS GIRATORIAS: ........................................296 Ratones Estacionarios..........................Modo de direccionamiento relativo ....................................................................... ...........................................................................................................................................................................................296 315 ...........................272 Tareas realizadas por el programa ensamblador ...................................................................257 Comparación entre el..............................................................................266 La tabla de símbolos .....................................................................................279 CONCLUSIÓN............................. lenguaje ensamblador y los lenguajes de alto nivel .......294 MOUSE (RATON) ...............................................................................................................................................................................................................................246 INDICE.................................................277 Enlace dinámico ..........................................................................................................................................................................293 TECLADO: ................................................................................................................................................................................................................269 Definición..................................................246 BOLILLA V: EL NIVEL DEL LENGUAJE ENSAMBLADOR...........................................................................274 Estructura de un módulo objeto .......................................................................................................................................................................................................................................................................................................................................271 MONTAJE (LINKING) y CARGA .................................................................284 INTRODUCCIÓN...............................282 BOLILLA VI (Parte 1): PERIFÉRICOS..................................................................................................240 Modo de direccionamiento indexado ...................................................................................256 Formato de una sentencia en lenguaje ensamblador .................

.............................306 Impresoras térmicas: ......................................................................................................................................311 316 .............................................300 2......................................................................302 DVD:............................................................................................................................................................................................................................................................................................................................................................................308 CONCLUSIÓN....................................296 Profundidad de color............................................306 PERIFERICOS DE COMUNICACION.........................................................................................300 Discos opticos: .........................................................................................................297 LECTORES DE CODIGO DE BARRA...............298 PERIFERICOS DE ALMACENAMIENTO: ..... .............297 Calibración............................................................................................................................................................................305 Impresora de Bola: .........299 Fiabilidad del soporte................................................................................307 Aspectos técnicos.................................301 Cintas magneticas: .....................299 Discos...................................................................................................................................................................................................................................................................................................303 La compresión MPEG-2: ..................................306 Impresoras láser: .......................................................297 Desventajas: ....................................................................296 Tipos de escáner:..................................................................................................................................................................ESCANER ............................................................309 BOLILLA VI (PARTE 2): TÉCNICAS Y DISPOSITIVOS DE ENTRADA SALIDA...........................................305 Impresoras con cinta entintada: ..................................................................303 El disco por dentro: ...306 Impresoras sin cinta entintadas: ......................299 Discos flexibles.......................................................................................................................303 El futuro del DVD: ........307 MODEM.....................................................................................310 INDICE...........................................................................................................297 Ventaja: ...................................................................................................................................................................... ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................298 LECTORES DE TARJETAS MAGNETICAS...297 TABLETA DIGITALIZADORA.......................................................................300 1.............................................................................................297 Desventajas: ........................................................300 Facilidad de manejo y almacenamiento............................304 Impresoras..........307 CONCLUSIóN........297 Escáner de Sobremesa: ...............................................305 Impresoras de agujas: .............................................. .......................302 Prestaciones del DVD: ..................................................................................................306 Impresoras de inyección de tinta: . Disco flexible de 5 1/4 pulgadas ..........................................................304 PANTALLAS DE SISTEMAINFORMATICO (Monitor): .........................307 Como usar la Tecnología 56K ................................300 Disco duro.................................................................................................................................................................................................................................................303 PERIFERICOS DE SALIDA: .............................297 Ventajas: .................................................................................................................... Disco flexible de 3 1/2pulgadas ..................................................................................................................................................................................................................................................................................................................................................................................................................................................................298 LAPIZ OPTICO: ......................................................................306 Impresoras Láser de color: ....................................297 Escáner de mano: ..............297 Escáner de Rodillo:......

............318 TECNICAS Y DISPOSITIVOS DE ENTRADA / SALIDA (Input / Ouput).............................................................................................................................335 Polling (interrogatorio de tráfico) .....................................................................................................................................................................................334 Técnicas de entrada/salida (input/output)................................................................................................................343 BIBLIOGRAFÍA ....................................................................................................................................................338 Transferencia DMA ......................................................................339 GLOSARIO.......................................................................................................................................................323 Impresoras.....334 Otros periféricos..................................................................................................................................................................................................................................................330 La pantalla............................................................................................................................................................................................340 CONCLUSIÓN.INTRODUCCIÓN.....................................................................................................................................................................................................................342 CONCLUSIÓN FINAL...................319 Dispositivos de soporte magnético........................332 Procesos de comunicación para la transmisión de datos a distancia....................................................................................331 Terminales...............................................336 Interrupciones (interrupts) ..323 Plotter..............344 317 .........319 Dispositivos de fichas y de banda perforada......................................................................................................................

INTRODUCCIÓN 318 .

ya que se prefiere. El primero. La característica de las fichas es representar los datos carácter a carácter. DISPOSITIVOS DE FICHAS Y DE BANDA PERFORADA Cuando un ordenador recibe los datos de entrada en fichas son necesarios los siguientes dispositivos: • Una máquina perforadora para transformar manualmente los documentos originales en fichas perforadas. Por consiguiente. cargar las fichas desordenadas en un soporte magnético y que esta tarea de ordenar la realice el mismo ordenador mediante un programa (programas de selección): • Lectora de fichas conectada al ordenador. dependiendo del tipo de periférico. ya examinamos las principales características de los dispositivos de I/O (Input/Output = entrada/salida) en soporte magnético.). para las operaciones de I/O. en la memoria del ordenador también existe un buffer de I/O (en general. • Una máquina selectora para ordenar las fichas en base a campos determinados. de dimensiones variables. refiriéndonos a un sistema de microprocesadores. no los trataremos en éste. en sustancia. generalmente. Puesto que en el anterior. Antes de hablar de estos dispositivos veamos en qué consiste una ficha. son las mismas que las utilizadas en los sistemas de grandes y medianos ordenadores. las letras del alfabeto se 319 . desde que las posibilidades del ordenador lo permiten. por el que pasan todos los datos de salida y de entrada. Las filas están numeradas físicamente de 0 a 9. por lo menos. buffer ocupado. • Una máquina verificadora para controlar que las perforaciones de las fichas sean exactas. Estas técnicas. Además. de dimensiones distintas con respecto al del periférico en cuestión) que contiene los datos a transmitir.APUNTES DE CATEDRA CARRERA: Cátedra: Profesor: AÑO: LICENCIATURA EN ANALISIS DE SISTEMAS – INGENIERIA EN SISTEMAS Procesamiento De Datos I Lic. La ficha esta dividida en 80 columnas y 12 filas. etc. Aprenderemos las principales técnicas utilizadas en un sistema de ordenador para la gestión de periféricos de entrada/salida (I/O). Las cifras se representan con una perforación en la fila correspondiente. consideremos de ahora en adelante una configuración estándar para todos los periféricos. un registro de estado y un buffer de I/O. que prevea para cada uno de ellos. Se trata de una pequeña cartulina rectangular con una discreta resistencia y un buen aislamiento eléctrico. Realmente esta máquina casi no se utiliza. existiendo también dos filas superiores a la fila 0 (la 11 y la 12). hablando de las memorias masivas. y para una mayor simplicidad. generalmente está constituido por un conjunto de bits que proporciona las informaciones esenciales sobre el estado del periférico (por ejemplo petición de disponibilidad de un dato. El segundo es un registro de tránsito. Marcelo Martinez 2003 TECNICAS Y DISPOSITIVOS DE ENTRADA / SALIDA (Input / Ouput) EL objetivo de este capítulo es explicar los dispositivos más comunes de entrada y salida de datos.

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

deberá conectarse a una unidad perforadora de fichas. que puede ser electromecánico o fotoeléctrico. el programa tiene que saber. Supongamos que cada columna de la ficha se «fotografíe» en 2 bytes que constituyen una palabra de ordenador. se determina cuantos caracteres son necesarios para cada dato y en qué columna de la ficha tienen que perforarse. carácter a carácter. Detalle de una lectora de fichas (Foto cedida por Honeywell Bull) Las lectoras de fichas. se establece el trazado. en una única secuencia. realizar eventuales transformaciones de código y transferir esos datos desde el buffer a las zonas de memoria dedicadas a ellos. o en paralelo. ya las posiciones sin perforación. un bit 0. las características de los datos que residen en el buffer. Pasemos ahora a examinar los periféricos de banda perforada. hacen llegar las fichas hajo el dispositivo de lectura. Para cada ficha. Si el ordenador utiliza las fichas en los dispositivos de salida. dos paquetes de fichas ya ordenadas. que servía para agrupar. es decir. con un mecanismo de arrastre. antes de la perforación. Constan de una cinta de papel resistente de color opaco. A esta zona de memoria del ordenador la llamamos buffer de lectura. Por otro lado.Foto. Los datos contenidos en el buffer solo pueden utilizarse si previamente han sido interpretados según las directrices del programa. es decir. Hoy en día también se prefiere realizar este trabajo con dispositivos magnéticos por medio de un programa de ordenador (programas de agrupación). el contenido de la ficha después de la lectura consta de 80 palabras. que contiene en toda su longitud una secuencia de 321 . Hemos mencionado la máquina selectora de fichas. La lectura de la ficha perforada es. mientras la ficha se desliza a velocidad constante bajo la estación de lectura. Por lo tanto. una fila tras otra. una columna tras otra. de hecho. el ordenador tiene que leerla columna a columna (o fila a fila) con la temporización exacta. En este caso. Junto a ésta podíamos encontrar otra máquina. denominada intercaladora. bastante complicada. para no sobreponer las informaciones. puede ocuparse de reagrupar los caracteres que pertenecen a cada dato. para luego ser transferidos a la ficha por medio de punzones dirigidos eléctricamente. en realidad. los datos que se perforarán sobre una ficha tendrán que prepararse en un buffer de escritura. por medio de las convenciones del lenguaje utilizado. carácter a carácter. el resultado final es una fotografía del estado de las perforaciones existentes en la ficha en la que a cada perforación le corresponde un bit 1. En ambos casos. La lectura puede ser en serie. En tal caso.

En éstas tenemos una estación de lectura y/o perforación. generalmente 7 u 8. 1. el cual normalmente se controla mediante programa. y es suficiente transferirlo a la memoria a partir de la posición deseada. Los datos se reciben carácter a carácter en un buffer de lectura. También para la banda de papel son válidas las mismas observaciones hechas para las fichas. bien de lectoras. Banda de papel perforada de 8 canales. Los datos se perforan carácter a carácter utilizando siempre un bit para el control de paridad. mientras que en el segundo sólo puede llenarse una parte de la memoria. El programa se encarga de todas las transformaciones de código necesarias para poder trabajar con los datos. de manera electromecánica o fotoeléctrica. De todas formas. Generalmente dispone también de un dispositivo manual para la perforación de la banda. y la perforación. El código de perforación puede realizarse utilizando un determinado número de bits. donde el canal 8 se utiliza para el control de paridad y los canales del 1 al 7 para el código. En el caso de que se carguen programas de lenguaje de máquina mediante banda perforada. o son preparados en un buffer de escritura. o de lectoras/perforadoras. Fig. Algunos ordenadores contienen una lectora de banda perforada para cargar en memoria el programa inicial de comienzo y/o parte del sistema operativo. En la figura 1 se representa una banda con 8 canales. Además. mientras que otros sólo permiten la lectura a gran velocidad de toda la banda disponible. cada carácter grabado puede representar el contenido binario de un byte. donde la lectura puede realizarse de igual manera que para las fichas perforadas.pequeños agujeros para su arrastre. mediante punzones accionados eléctricamente. es decir. existe un dispositivo para el arrastre de la cinta. bien de perforadoras. 322 . Es evidente que en el primer caso se pueden introducir datos procesables por el ordenador en forma de bloques. Algunos dispositivos de lectura permiten leer la banda por bloques (como sucede en las cintas magnéticas). si un ordenador utiliza periféricos de banda perforada. y las perforaciones se realizan perpendicularmente a la directriz de arrastre a lo largo de los canales. Se trata.

323 . Algunas impresoras permiten utilizar. además de una pista de perforaciones para el arrastre. de manera inteligible para el hombre. por discos magnéticos rígidos o flexibles y por tambores. que después la impresora tratará como lo hace una máquina de escribir corriente. dependiendo de la impresora utilizada: las medidas habituales son de 32. El número de caracteres que se pueden imprimir en una línea varía. basado en la utilización de una cinta de papel perforada. El dispositivo de arrastre de la cinta actúa. 132 ó 160 caracteres por línea. Para controlar el número de líneas que se pueden imprimir en una hoja existen diferentes posibilidades. El sistema cuenta las líneas impresas ( el número de líneas por página puede ser fijo o modificable por software: el más común es de 66 líneas por página) y accede automáticamente a una hoja nueva. y se encola en forma de círculo. cerrada en círculo y ubicada en la impresora. Es posible dirigir por programa el avance del papel en base a las perforaciones existentes en los diferentes canales de la cinta. introducir el folio. Los lenguajes simbólicos de alto nivel constan de una serie de instrucciones que facilitan la impresión de los resultados con el formato y paginación deseados. La cinta de papel ofrece. Están constituidos por dispositivos de cintas magnéticas. Estas se encargan de imprimir los resultados de los procesos sobre folios o sobre módulos de papel continuo. por medio de carros superpuestos. Mediante un interruptor especial se puede elegir el espaciado entre las líneas. así como el formato de la línea de impresora (ver figura 2). mediante carretes apropiados. En algunas existe una tecla de «reset» (recomponer). dependiendo del tipo de impresora. En el primer caso. conjuntamente con el movimiento del papel en la impresora. dejando el margen necesario. es posible. que normalmente es de 1/6 ó 1/8 de pulgada. Si se desea cambiar de hoja en base a unas reglas más complicadas. Por el contrario. se puede utilizar en el programa un contador de líneas y mandar el avance del papel con una orden de impresión en vacío. Considerando la forma en la que se imprimen los caracteres. Están dotados de dos cintas laterales perforadas que permiten «enganchar» el papel al mecanismo de arrastre. que puede accionarse después de haber colocado la hoja. Más flexible es el sistema de avance del papel. 80. los módulos de papel continuo están doblados en forma de acordeón y son fáciles de separar. la posibilidad de realizar perforaciones en diferentes posiciones sobre los 12 canales o pistas. Genéricamente se denominan dispositivos de memoria masiva. IMPRESORAS Las impresoras son los periféricos que más se utilizan para la salida de datos del ordenador. El principio de funcionamiento es el siguiente: se corta la cinta de papel de manera que sea tan larga como las hojas utilizadas. 120. por lo tanto.DISPOSITIVOS DE SOPORTE MAGNÉTICO De estos dispositivos ya hemos hablado en el capítulo anterior. las impresoras pueden dividirse en dos grupos: por impacto y sin impacto. un módulo de papel continuo y hojas sueltas de inserción frontal. pero son en todo caso dispositivos de entrada/salida (I/O).

Detrás de ésta hay una serie de pequeños martillos. 324 . que son del tipo en paralelo. Cuando el programa pide la impresión de un determinado carácter en una determinada posición. el dispositivo de impresión está formado por una cadena metálica cerrada en forma de anillo. En la figura 3 se representa un esquema del dispositivo de impresión con cadena. que gira a velocidad constante en paralelo a la línea de impresión. el segundo sistema consta de una matriz de agujas (matriz 7 x 5. 8 x 8 u otras) . que imprimen sólo de izquierda a derecha y en las cuales el retroceso del carro se hace sin imprimir: y las bidireccionales. consta de un dispositivo con la forma del carácter en relieve. Cinta de control para el desplazamiento del papel. que están repetidos un cierto número de veces. hay que esperar a que la cadena tenga disponible dicho carácter en la posición deseada para poder activar el martillo correspondiente. que imprimen tanto de izquierda a derecha como de derecha a izquierda. 2.Fig. muy parecido al utilizado en las teclas de una máquina de escribir. Además. que golpea una cinta posicionada entre el papel y el dispositivo. Hay que considerar otra subdivisión entre los tipos de impresoras disponibles: impresoras en serie e impresoras en paralelo. Las impresoras en paralelo imprimen todos los caracteres de una línea a la vez o de tal manera que parece que la impresión se realiza simultáneamente en todas las posiciones. que forma cada vez el carácter deseado activando algunas agujas. Por el contrario. Existen también las monodireccionales. 7 x 7. un carácter puede imprimirse con una imagen continua o en base a puntos. Las impresoras en serie producen la línea impresa carácter a carácter. 9 x 7. tantos cuantos son los caracteres que se pueden imprimir en una línea. pasaremos a hablar de los tipos más importantes. En las impresoras de cadena. En la parte superior lleva todo el grupo de caracteres disponibles. Pertenecen al segundo grupo las máquinas en las cuales la impresión se realiza por medio de sistemas químicos. Ahora que conocemos los parámetros en base a los que están subdivididas las impresoras. magnéticos o eléctricos. La cinta está situada entre la cadena y el papel. Al primer grupo pertenecen las impresoras que imprimen el carácter sobre el papel por contacto mecánico por medio de una cinta entintada. El primer sistema.

o bien sobre ruedas giratorias. En este caso. El funcionamiento es similar al que vimos anteriormente. ya sea sobre barras metálicas que se levantan o se bajan dejando el carácter deseado disponible a la altura de la línea. En la figura 5 se representa el esquema de un dispositivo de impresión de una impresora en serie con cabezal cilíndrico. está disponible en correspondencia con las diferentes posiciones de impresión. 4. La única diferencia reside en que la línea se escribe en tiempos sucesivos. En las impresoras de cilindro. por lo que. Son bastante caras. A lo largo de una directriz del cilindro se encuentra el mismo carácter. Esquema de un dispositivo de impresión con cadena. Con impresoras de esta clase se obtienen velocidades comprendidas entre 600 y 3. Dispositivo de impresión de cilindro.000 líneas por minuto.Fig. 3. Fig. que parece que todos los caracteres de una línea se imprimen simultáneamente. el grupo de caracteres está situado en una serie de canales circulares sobre la superficie de un cilindro metálico. que también son del tipo en paralelo. 325 . figura 4. los caracteres están dispuestos. Otra clase de impresora del tipo paralelo de impacto es la de barras o de ruedas. a cada instante. que gira a velocidad constante. imprimiendo en el mismo instante todos los caracteres iguales tan rápidamente.

6. tienen los caracteres en relieve dispuestos en círculo y formando. Foto. (foto cedida por Rank Xerox) Fig. También se puede disponer de cabezas de escritura con forma diferente: cilíndrica. Las impresoras de margarita. figura 6. una margarita. números e imágenes sobre papel a la velocidad de 12 originales (formato A-4) por minuto. Impresora láser para la impresión de textos. de rueda o de margarita. como su nombre indica.Fig. Cabezal de margarita (Foto cedida por Olivetti) 326 . Esquema del dispositivo de impresión de bola. 5.

se activan las agujas necesarias tantas veces como haga falta (en el ejemplo. 7. de impacto y de agujas. incluso del orden de los 200 cps. Fig. La margarita en funcionamiento. 7 veces las 7 agujas de una columna) y el carácter se crea por puntos y por impacto. Correspondiéndose a cada carácter. Fig. pero tienen una óptima calidad de impresión. En la figura 9 se pueden observar las diferentes fases de realización de la letra «A» por medio de una impresora de agujas.Son impresoras en serie y a impacto más bien lentas (30 cps -caracteres por segundo-) y caras. En este caso. figura 7. Se obtienen velocidades mayores. Esquema del dispositivo de impresión en serie por punto. En la figura 8 se representa un esquema para una matriz de 7 x 7. con impresoras en serie. 327 . 8. la cabeza de impresión tiene las dimensiones de una columna de la matriz y se mueve a lo largo de la línea de impresión a velocidad constante.

Citemos las impresoras de chorro de tinta (ink-jet). La impresora láser consta de un cilindro recubierto de selenio (material aislante en la oscuridad y conductor a la luz). El cabezal de escritura.000 líneas por minuto. gota a gota. Fig. con rotación constante y uniforme. dosifica la tinta. que pueden alcanzar velocidades de 40. y se alcanzan velocidades del orden de 2. Diferentes fases en la formación de la letra "A" con una impresora de aguja. Sin embargo. 10.Fig. 9. al igual que sucedía con la impresora de matriz. la cual. Impresora de chorro de tinta. estas impresoras son muy caras. será conducida a través de un campo eléctrico sobre el papel para formar el carácter deseado. su funcionamiento es el siguiente (ver figura 10 ). Por lo tanto. se mueve uniformemente a lo largo de toda la hoja. se efectúan tantas pulsaciones como líneas tenga la matriz. después de ser electrizada.000 líneas por minuto. En la impresora de agujas de funcionamiento en paralelo. en cuya superficie incide un rayo láser. En la posición en la que se tiene que escribir. Esquemáticamente. con una pulsación se señalan todos los puntos de todos los caracteres relativos a una línea de la matriz. Para grandes sistemas existen impresoras superrápidas. desviado por un espejo. a lo largo de todo el proceso de impresión (ver 328 . constituido por un depósito con un dosificador.

Son bastante silenciosas.figura 11). deben ser almacenados en un buffer (de impresión). aunque lentas. sólo se puede obtener la impresión del conjunto (set) de caracteres disponibles en la máquina. Impresora térmica de matriz de puntos. Sólo los puntos de selenio «iluminados» retienen electrostáticamente el polvo de tinta seca (toner) depositada en una determinada franja del cilindro. que normalmente tiene la capacidad suficiente para contener una línea.000 líneas por minuto. No se consigue una buena nitidez de impresión. Entre la gama de impresoras sin impacto y de bajo costo. Es evidente que. Después de haber hablado de las principales clases de impresoras. Los datos que se tienen que imprimir. 11. Por el 329 . Impresora de rayo láser. El elemento de impresión. codificados según el dispositivo utilizado. citamos las impresoras térmicas. por puntos o por segmentos. por medio de compresión y calentamiento se imprime el carácter deseado sobre el papel como un conjunto de puntos. Fig. volvamos a las consideraciones de carácter general. imprime en caliente sobre papel especial el carácter deseado. Después. Fig. Alcanzan velocidades de 20. si disponemos de una impresora de carácter entero. ver figura 12. 12.

Tomemos la matriz 8 x 8. puede desplazarse verticalmente en los dos sentidos. Esta tiene una imagen en memoria de 8 bytes consecutivos. 13. 14. que puede escribir o elevarse para permitir el desplazamiento sin escribir. en los que: los bits 1 corresponden a los puntos que se tienen que imprimir. el papel. la letra n (ver figura 13). Ejemplo de un plotter. enrollándose o desenrollándose. no muy rápidas. es decir. 330 . diseños especiales. (Foto cedida por Calcomp. Por el contrario. siempre que el sistema lo permita será posible obtener. detalle de plumas de 4 colores. Fig. que permiten dibujar gráficos (ver figura 14). Mediante una adecuada configuración de los 1 se puede imprimir. PLOTTER Toman el nombre de plotters aquellas unidades de impresión. Correspondencia entre puntos de impresión y el contenido de los 8 bytes. mediante software. diseñar caracteres particulares.) En algunos. arriba a la izquierda.contrario. Fig. si utilizamos una impresora de matriz por puntos. por ejemplo. el desplazamiento horizontal es tarea de la pluma (o plumas) de escritura. generalmente enrollado.

el área de pantalla está representada en la memoria. es posible continuar escribiendo eliminando las líneas superiores para dejar sitio a las nuevas. de 80 caracteres cada una. Fig. En algunos sistemas se consigue incluso obtener un giro de visualización (scrolling) hacia abajo. En otra zona dc memoria se conservan las imágenes de todo carácter visualizable 331 . es decir. Algunos ordenadores realizan la impresión de gráficos de forma distinta. la pantalla está dotada de posibilidad de giro de la visualización (scrolling).) El número de caracteres que se pueden visualizar depende del tipo de ordenador. Su dimensión habitual es de 12 pulgadas (ver figura 15). en muchos casos. Generalmente. es decir. cuando la pantalla está llena. muy parecida a la de un televisor corriente. Dichos caracteres o pertenecen al conjunto (set) disponible o. pudiendo de esta forma insertar nuevas líneas en la parte superior. que consta de tantos bytes como caracteres pueden aparecer en la pantalla. Normalmente de 20 a 80 caracteres por línea y de 20 a 24 líneas. que domina totalmente el campo de ordenadores personales. El programa es el que dirige todos estos desplazamientos y permite trazar gráficos muy complejos con tanta mayor precisión cuanto menor sea el incremento de coordenadas (es decir. éstos pueden copiar sobre el papel cualquier imagen que aparezca en la pantalla. En la pantalla de color también existen buffers dedicados a los códigos de colores de los diferentes puntos de la pantalla. resultando ser así una imagen de ella. Por lo tanto. (Foto cedida por Tektronix. De hecho.920 bytes. 15. LA PANTALLA Hemos mencionado la pantalla como una unidad de salida (output) muy difundida y a menudo utilizada en estrecha unión con el teclado de entrada (input). se dice que tienen el dispositivo de hard copy: es decir. Por ejemplo. Consiste en una pantalla en blanco y negro o de dos o más colores (de 8 a 16).También existen plotters en los que la hoja de papel. en ésta existe una zona denominada buffer. en una pantalla de 24 líneas. Conjunto (set) de colores de un apantalla según los componentes de luminosidad: color y saturación. queda inmóvil y el dibujo se realiza con el solo movimiento de la pluma. situada horizontalmente. el más pequeño desplazamiento horizontal o vertical que puede realizar). pueden ser diseñados por puntos por el mismo programador. Generalmente. se trata de una imagen de puntos que se reproduce línea a línea mediante una impresora corriente de matriz por puntos. disponemos de 1.

utiliza el buffer para obtener una relación de las tablas que representan los distintos caracteres. la pantalla utiliza la nueva técnica de ventanillas múltiples. número u otros) bajo la forma de tabla de bytes. por pantalla o sobre el papel. ya que su posicionamiento tiene efecto inmediato. Podemos imaginar un teclado de n x m teclas como una matriz de n líneas por m columnas. Por lo tanto. que se encarga de la pantalla. se puede decir que el buffer contiene los punteros de las imágenes de los caracteres. Se recomienda la utilización del lápiz particularmente en operaciones de selección. en la que la pulsación de una tecla provoca un contacto en el cruce de una línea 332 . una para cada carácter. llamado cursor. que en todo momento se encuentra en la posición actualmente disponible y que puede ser movido utilizando las teclas de desplazamiento del cursor. que sirve para indicar una posición de la pantalla. pero siempre con el debido cuidado y habilidad. Terminal constituido por un teclado alfanumérico y una impresora o una pantalla.(letra. Fig. hablaremos de los terminales de pantalla y de los de escritura. Es evidente que la posibilidad de accionar sobre los punteros para la búsqueda de los caracteres en tablas diferentes a la estándar del sistema aumenta notablemente las posibilidades gráficas de la pantalla. La pantalla puede ser utilizada también como unidad de entrada por medio de un lápiz óptico o lápiz luminoso (light-pen). TERMINALES Se llaman terminales aquellos dispositivos que permiten la comunicación directa (sin utilizar soportes intermedios) con el ordenador por medio de un teclado alfanumérico parecido al de una máquina de escribir (ver figura 16). Para facilitar la gestión de la pantalla se utiliza un indicador luminoso (generalmente intermitente). 16. La diferencia entre los dos grupos depende de la manera en la que se visualizan los datos introducidos por el teclado. Existen diferentes tipos de terminales. La posición viene determinada durante el continuo barrido de la pantalla por medio del rayo luminoso. El microprocesador.

El terminal de pantalla es muy utilizado y cómodo. por lo tanto. se da una situación anómala. en una situación transitoria. después de un determinado número de oscilaciones. La CPU envía tensión (estado lógico 1) a las diferentes líneas de la matriz. 333 . para confirmar o no la lectura anterior. cíclicamente. se trata de pequeños ordenadores que pueden funcionar de manera autónoma. Hasta ahora se ha hablado de terminales no inteligentes. por medio de filtros RC. de dispositivos utilizados sólo para entrada y salida. Las líneas de la matriz son líneas de salida de la CPU y las columnas son líneas de entrada.con una columna. a obtener un 1 también en la columna. interprete de manera errónea una oscilación. Ejemplo de nuevas técnicas de pantalla. Por rebote se entiende el fenómeno según el cual. programables sin dependencia alguna del ordenador al que están conectados. Se consideran remotos aquellos terminales para los que no es posible una conexión directa. se obtiene la identificación exacta de la tecla pulsada. se efectúa mediante programa con adecuadas instrucciones de entrada y salida. que escriben sobre las líneas y leen las columnas. Se procede. introduciendo rutinas de retardo en los programas de gestión del teclado y volviendo a leer el estado de la tecla después de haber transcurrido un cierto tiempo desde la primera determinación. junto con la detección de la tecla pulsada. El pulsar una tecla equivale a cortocircuitar una línea con una columna y. Cuando se pulsan dos o más teclas a la vez (rollover). generalmente son ignoradas. Algunos teclados están dotados de un buffer en el que se pueden conservar algunos de los caracteres pulsados. Finalmente. bien sobre papel. Es posible efectuar una entrada muy sofisticada de datos. también después de determinar que una tecla ha sido pulsada. Esta operación es tarea del sistema. Otro problema ligado a la gestión del teclado es el rebote. refiriéndonos al tipo de conexión. bien con una técnica hardware. del orden de los 15/20 ms. Esta operación. los terminales se clasifican en remotos y no remotos. a la espera de visualizarlos en la posición inmediatamente disponible en la salida. Con el barrido sistemático de las líneas y columnas para averiguar dónde aparece un 1. miles de veces por segundo. Existe también una categoría de terminales inteligentes. En realidad. aunque se puede omitir. gráficas y tridimensionales. al ordenador central. la pulsación de una tecla provoca el cierre efectivo y definitivo del contacto con un cierto retraso. Para remediarlo se lleva a cabo el barrido de todo el teclado. es necesario evitar que la operación de determinar el estado de la tecla. bien en pantalla. Lo mismo sucede cuando dejamos que la tecla vuelva a su posición inicial. por medio de cables. bien por software. utilizando las posibilidades de desplazamiento del cursor. es decir. entonces. En el caso de que se determinen nuevas pulsaciones. lo que indica que al menos una tecla ha sido pulsada. es decir. una por una. Por tanto.

por parte del emisor. se han desarrollado dispositivos de entrada basados en la lectura magnética u óptica. tienen que estar presentes el hardware y el software necesarios para la transmisión: es decir. y la transmisión asíncrona. en la transmisión asíncrona. Por el contrario. y deben situarse en posiciones del documento previamente determinadas. reproduciéndose el mismo dibujo en la pantalla (ver figura 17). El joystick (palanca direccional) es una palanca que puede desplazarse muy rápidamente hacia adelante. En general. así como los paddles. sobre una única línea uno tras otro) se efectúa generalmente por medio de líneas telegráficas. En el primer caso. por parte del receptor. hacia atrás. por otra. cada carácter va precedido y seguido por un cierto número de bits que determinan su principio y su fin. después de un intercambio de informaciones que permiten la sincronización entre los dos dispositivos. Son muy utilizadas en los videojuegos. Existen palancas direccionales (joysticks) con posiciones fijas y otras en las que el movimiento puede ser continuo. los caracteres deben escribirse en forma estándar. El tablero digitalizador (tablero digital) permite escribir o dibujar con un bolígrafo especial. La transmisión puede ser síncrona o asíncrona. los procesos de comunicación (protocolo de transmisión). en la lectura óptica ( OCR = Optical Character Recognition). el documento se escribe con tinta normal y la determinación del carácter sólo se basa en su forma. En este caso. Para evitar que los datos pasen por soportes intermedios. Tanto en la estación transmisora como en la receptora. la transmisión de los datos a distancia (un determinado número de bits transmitidos en serie. que están formados por un mando con un botón que permite el desplazamiento continuo del cursor. como fichas o bandas perforadas. a la derecha y a la izquierda. se realiza la transmisión en bloque del conjunto de caracteres que constituyen el mensaje. la transmisión síncrona se utiliza en líneas de velocidad media o alta. 334 . los documentos originales sirven como entrada al ordenador y el dispositivo de lectura tiene que identificar directamente los símbolos utilizados por el hombre. que permiten la «comprensión» entre las dos estaciones. Por el contrario. es decir. En el sistema de lectura magnética (MICR = Magnetic lnk Character Recognition). en líneas de baja velocidad. La velocidad se mide en baudios (1 baudio = 1 bit por segundo). telefónicas o a través de enlaces por radio. Esta termina con la transmisión de un carácter de fin de bloque. utilizando tinta magnética. brevemente. produciendo el correspondiente desplazamiento de un punto en la pantalla. El dibujo producido puede ser visualizado en la pantalla o memorizado en otro dispositivo. otros tipos de periféricos. y con una señal de confirmación de llegada. Por ejemplo.PROCESOS DE COMUNICACIÓN PARA LA TRANSMISIÓN DE DATOS A DISTANCIA En este caso. OTROS PERIFÉRICOS Mencionaremos. la señal por una parte y el reconocimiento del principio de un mensaje.

haciendo referencia a los modernos sistemas de microprocesadores. Esperar para el correcto posicionamiento 4. (Foto cedida por Calcomp. Verificar que la operación se realice correctamente Escritura 1. TÉCNICAS DE ENTRADA/SALIDA (INPUT/OUTPUT) Después de haber hablado de los dispositivos I/O (entrada/salida) más comunes que se pueden conectar a un ordenador. existen dispositivos con salida oral de datos desde el ordenador. las funciones siguientes: Lectura 1. Análogamente. para conectar un periférico al ordenador es necesario una interfase que realice las transferencias en serie o en paralelo. Verificar los indicadores de estado «ocupado» y el carácter de control de bloque (CRC). Generar una búsqueda 3. Generalmente. el controlador de una unidad de floppy-disk (diskette) debe realizar. Esperar para el correcto posicionamiento 4. 17. Mandar una orden de escritura 5. 335 . consta de un controlador del dispositivo (controller) que.Fig. El periférico. Cargar el registro 2. Cargar los datos después de que haya recibido una señal de demanda 6.) Existen dispositivos. Generar una búsqueda 3. Por ejemplo. y viceversa. Transferencia de los datos bajo control de interrupción 5. como su nombre indica. aún no muy utilizados y con limitado vocabulario. en el caso de dispositivos con partes mecánicas complejas. o que disponga de la conversión de datos serie/paralelo. Cargar el registro 2. por lo menos. para la entrada oral de datos al ordenador. y viceversa. vamos a hablar ahora de las técnicas principales utilizadas en las transferencias de datos desde el ordenador a los periféricos. Detalle de un puesto de trabajo de un sistema gráfico donde resalta el lápiz. realiza todas las funciones de control necesarias para el correcto funcionamiento del dispositivo.

Se trata de un ciclo repetitivo realizado por software por medio de un algoritmo adecuado. I/O programado o polling. 18.) Polling (interrogatorio de tráfico) El primer método. el controlador de pantalla tiene que encargarse de buscar en la tabla de caracteres la matriz de puntos necesaria para evidenciar cada carácter que se encuentra en la zona de pantalla. el bus de direcciones y algunas líneas del bus de control.Por el contrario. es necesario establecer un proceso de comunicación o técnica de I/O. para saber si solicitan alguna tarea. 336 . las interrupciones (interrupt) y el DMA (Direct Memory Access o Acceso Directo a Memoria) esquematizados en la figura 18. al que se le pregunta acerca de la disponibilidad de los dispositivos. es el más simple. encargarse del cursor y del desplazamiento de líneas. En la figura 19 se esquematiza la secuencia de polling. Podemos esquematizar tres procesos: polling (interrogatorio de tráfico). Se trata de una técnica síncrona en la que el ordenador interroga cíclicamente a los periféricos que están conectados por medio del bus de datos. En la interfase de conexión de cada dispositivo se encuentra un indicador (flag). Dado que en un sistema están conectados muchos periféricos. Las tres técnicas de I / O (Input / Output .Entrada / Salida. que haga posible que cada uno de ellos trabaje. Fig.

se les asigne tareas a todos los demás periféricos. en los que a la transferencia de datos se le añaden señales adecuadas denominadas handshake (permiso de tráfico). la disponibilidad del dato por parte del otro y finalmente su recepción por parte del primero. Análogamente. El ciclo de polling puede resultar lento. Generalmente. el ordenador.Fig. si el ordenador transmite un dato al periférico tiene que verificar que esté listo para recibirlo. Se trata de una comunicación real que representa ya sea una entrada. 337 . Por otra parte. que comunican la petición de un dato por parte de un dispositivo. tiene que cerciorarse de que esté actualizado. porque si un periférico solicita una tarea inmediatamente después de haber sido interrogado tiene que esperar a que sean interrogados y. El proceso de pregunta y respuesta entre el ordenador y el periférico toma el nombre de protocolo (handshaking). el polling es una técnica de comunicación software. o una salida de datos para el ordenador. Comencemos por estas últimas. ya que prácticamente no necesita hardware: de hecho. este término indica una clase de comunicación entre los dos dispositivos. analizando un bit especial del registro de estado del periférico. lo que provoca un retraso intolerable en aplicaciones delicadas. Ciclo de polling (interrogatorio de tráfico). 19. Veamos las ventajas y desventajas de esta técnica. eventualmente. el proceso de recepción y transmisión se realiza bajo el control del programa. y más tarde controlar que haya recibido dicho dato antes de realizar cualquier otro proceso. Si el dispositivo está listo para transmitir un dato. antes de leerlo del registro del periférico.

ya que no se puede prever el momento en el que serán transmitidos los datos. es necesario asignar prioridades de servicio para el caso de peticiones simultáneas. el control vuelve al programa interrumpido. atiende al periférico (3 en la figura). Técnica de interrupciones (interrups). El ordenador reconoce la petición (2 en la figura). Después de esta operación. o sea. y vuelve al programa que se había interrumpido. atendida la interrupción. si más de un dispositivo se asocia a un mismo nivel de prioridad. necesita un hardware complicado y una programación difícil. se le asigna una determinada rutina al periférico que pidió la interrupción. Además. o sea. aun siendo muy rápida gracias al programa. Previamente se realiza una operación para restablecer las condiciones que se grabaron en memoria en el momento de la interrupción. Por el contrario. Fig. Esto se realiza agrupando todos los dispositivos según niveles de prioridad. La situación ideal se logra conectando un único periférico a cada nivel de prioridad. salva el estado actual del programa en ejecución. En este caso. si éste existe. 20. 338 . grabando en una determinada zona de memoria la información necesaria para poder continuar. Veamos más detalladamente cómo se realizan estas operaciones. que permite una mayor velocidad para atender a las peticiones. Refiriéndonos al esquema de la figura 20. la técnica que aprovecha las interrupciones es mixta: software + hardware adicional. cuando hay más de un dispositivo conectado. bien por software. suspende el programa en ejecución. Una vez concluida la ejecución de la rutina de servicio. cuando la CPU recibe una interrupción tiene que poder determinar cuál es el periférico que la provocó. Es necesario saber que la asignación de los niveles de prioridad para los periféricos se determina en la fase de implantación y que una mala elección puede crear graves problemas. las peticiones simultáneas se ponen en cola y son atendidas según su prioridad. Con esta descripción es fácil entender que se trata de una gestión asíncrona. La gestión de entrada/salida (I/O) de este tipo es más complicada. que toma el nombre de «salva». vemos que el periférico solicita servicios al ordenador por medio de una señal enviada en la línea de interrupciones. no controlada por programa. la dirección de la instrucción con la que se tiene que continuar la ejecución del programa y el contenido del registro de estado. bien por hardware. Cuando la CPU recibe una interrupción.Interrupciones (interrupts) Por el contrario. Esta técnica. con la correcta ejecución del programa: dicha información es el contenido del CP (contador de programa).

la CPU interviene sólo en el momento de lanzar la operación y después la transferencia sigue su proceso de manera autónoma por medio de hardware. de un dispositivo particular denominado. DMA. El conjunto de estos programas toma el nombre de sistema de control para la I/O. para gestionar los periféricos. 339 . Las operaciones de la CPU sólo se interrumpen momentáneamente para liberar estos buses y poder efectuar la transferencia en DMA. ahora están a cargo. en las cintas o en las pantallas. y la contestación desde la CPU. En el esquema de la figura 21 se puede ver su funcionamiento. el procesador central es avisado por medio de una interrupción. Cuando existe una transferencia DMA. Por eso siempre existen programas estándar proporcionados por las casas constructoras junto con el ordenador.Transferencia DMA Para realizar la transferencia DMA es necesario disponer de un procesador capaz de efectuarla. también intervienen el bus de datos y el bus de direcciones. Al final de la trasmisión. Se trata de una técnica 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 ejecución. la gestión de las interrupciones (interrupts). Esquema de un DMA. que en la técnica anterior las realizaba el procesador central. con el DMA. No es nunca tarea fácil realizar la programación necesaria para efectuar las entradas/salidas de un ordenador. Se trata de dispositivos caros y se usan cuando se necesita una transferencia rápida como en los discos. Fig. La señal de parada enviada al procesador central se denomina hold. conocido como IOCS (Input/output Control System). El DMA permite que el programa se ejecute utilizando el modo asíncrono con respecto a la transferencia de los datos. precisamente. ack (acknowledgement: reconocimiento). Naturalmente. Prácticamente. 21.

por medio de adecuadas combinaciones de perforaciones. En los problemas relativos a la identificación del periférico que demanda tareas y en la definición de prioridad Banda perforada 340 . Se utiliza para transferencias rápidas de Memory grandes cantidades de datos entre un periférico y la Accessmemoria central. Técnica hardware de I/O. Impresoras en Imprimen. Código Es el código que se utiliza para representar los caracteres en Hollerith una ficha con las adecuadas combinaciones de perforaciones. con referencia al software. Técnica de impresión. impresos sobre hojas de papel. También zona de Buffer de I/O memoria del ordenador utilizada para realizar las operaciones de I/O. Soporte de papel para el registro de los datos de entrada y Ficha perforada salida del ordenador. de manera inteligible por el hombre. en la que no existe el contacto entre impacto el papel y el dispositivo de impresión. Indicador luminoso intermitente que se encuentra.GLOSARIO Soporte de papel en forma de cinta en la que se representan los datos. es el conjunto de programas que gestionan tales dispositivos. sino sólo Acceso Directo una cortísima suspensión de su actividad para dejar a Memoria) disponibles los buses en los que se realiza la transferencia de datos. Dispositivo de salida que proporciona los resultados de los Impresora procesos. uno tras otro. a cada Cursor instante. Impresoras en Imprimen simultáneamente (o casi) todos los caracteres de paralelo una línea en diferentes posiciones. Interrupciones Técnica de I/O mixta hardware + software en la que la (interrupts) transferencia de un dato se realiza por la petición de un periférico que interrumpe el proceso del programa en ejecución. en la posición disponible de la pantalla. gestionada por un dispositivo DMA (Direct denominado DMA. Registro o conjunto de registros de un periférico en el que transitan los datos de entrada y salida. serie Desde el punto de vista de hardware. que utiliza procesos químicos. los caracteres de una línea. es el conjunto de dispositivos que permiten la conexión entre ellos de dos o Interfase más componentes de un sistema. Técnica de impresión en la que los caracteres se imprimen Impresión con sobre el papel por medio del contacto mecánico entre la hoja impacto y el dispositivo de impresión utilizando una cinta entintada. Impresión sin magnéticos o eléctricos. No necesita el control de la CPU. Cada carácter se puede perforada identificar a través de una determinada configuración de perforaciones en posiciones adecuadas. carácter a carácter.

Modalidad de comunicación y transferencia de datos entre Técnicas de los periféricos y la unidad central. o por una impresora o por una pantalla. el buffer de I/O ocupado. Dispositivo de salida que. la información acerca del estado del dispositivo.para peticiones simultáneas. Dispositivo de salida conectado al ordenador. Por ej. es necesario hardware adicional. en la que la transferencia de datos Polling se realiza bajo el control de un programa que interroga (Interrogatorio cíclicamente a los periféricos. por medio del estado de sus Registro de bits. 341 . Dispositivo de entrada por medio del cual se introducen en el ordenador los programas y los datos sobre fichas perforadas. La transferencia se realiza sólo de tráfico) si el periférico que lo demanda es interrogado por el programa. Es una palanca direccional que puede moverse manualmente para dirigir el movimiento de un punto en la pantalla. Técnica software de I/O. El servicio de las demandas tiene carácter software y se realiza por medio de rutinas denominadas de «servicio». Dispositivo de I/O formado por un teclado alfanumérico por el que se introducen los datos y los programas en el Terminal ordenador sin pasar a través de soportes intermedios. IOCS (Input/Output Control System) Joystick (palanca direccional) Lectora de fichas Perforadora de fichas Conjunto de programas estándar generalmente proporcionados por las casas constructoras para la gestión de las operaciones de entrada y salida. etc. Los resultados de los procesos se obtienen bajo forma de fichas perforadas. disponibilidad de un dato. con referencia tanto al I/O aspecto hardware como al software. aprovechando el desplazamiento Plotter vertical de la hoja de papel y el desplazamiento horizontal de una pluma. estado la petición de un dato. Registro interno de un dispositivo (unidad central o periférico) que proporciona. realiza la impresión de gráficos y dibujos.

CONCLUSIÓN 342 .

CONCLUSIÓN FINAL 343 .

Bartee Complementaria Matemáticas para Computación McGraw Hill Seymour Lipschutz Informática – Glosario de Términos McGraw Hill Antonio Vaquero y Luis Joyanes PC Interno Boixareu – Editores Data Becker 344 . Marcelo Martinez AÑO: 2003 Básica Introducción a la Informática LL Guillera Aguera EDUNSA Operación Programación de Computadoras M.BIBLIOGRAFÍA UNLaR . Tanenmaum Prentice may Principios de Procesamiento de Datos Gordon B.com. Ginzburg La PC por Dentro M. Tanenmaum Prentice Hall Sistemas Operativos Modernos Andrew S.C.ar BIBLIOGRAFIA CARRERA: LICENCIATURA EN ANALISIS DE SISTEMAS – INGENIERIA EN SISTEMAS Cátedra: Procesamiento De Datos I Profesor: Lic.C. Davis Trillas Apuntes de la Cátedra Marcelo Martinez Sitio de la Cátedra en Internet y Copias Apuntes de la Cátedra Claudia Cesarini Sitio de la Cátedra en Internet y Copias Enciclopedia Audiovisual de Computación Océano Multimedia Fundamentos de computadores Digitales Thomas C. Ginzburg Bibioteca Técnica Superior Sistemas de Micro computación Ivan Flores El Atenero Organización de Computadoras Andrew S.Procesamiento de Datos I – Ciclo 2003 Pagina 1 http://unlar.estudio3.