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

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

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

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

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

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

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

INTRODUCCIÓN 12 .

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

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

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

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

de pto. 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. que es en esencia un amplificador digital. se conectan 17 . el controlador puede actuar más adelante como dispositivo Maestro. a efecto que las tarjetas diseñadas por terceras personas puedan conectarse al Bus del sistema. Algunos dispositivos conectados al Bus se encuentran en estado activo y pueden iniciar transferencias. tanto físicamente como en términos de voltaje. A pesar que los diseñadores de microprocesadores tienen la libertad de usar cualquier clase de Bus. Sin embargo LA MEMORIA NO PUEDE. al indicar a la memoria que acepte las palabras que lee de la unidad del disco. 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. mientras que otros están en estado pasivo aguardando solicitudes. Maestro CPU CPU CPU E/S Coprocesador Esclavo Memoria E/S Coprocesador Memoria Memoria Ejemplo Extracción de instrucc. deben haber reglas bien definidas del funcionamiento de éste. 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. Ejemplo de Combinaciones: Maestros y Esclavos del Bus. A los activos s les llama Maestros mientras que a los pasivos se les denomina Esclavos.y datos Inicio de transferencia de datos Traspaso de inst. ésta actúa como dispositivo Maestro el controlador como esclavo. las cuales deben ser obedecidas por todos los dispositivos conectados al mismo. en especial si éste es relativamente largo tiene muchos o tiene muchos dispositivos conectados. bajo ninguna circunstancia. Esas reglas se denominan Protocolo del Bus. Los Sistemas de cómputo pueden tener varios buses. actuar como dispositivo Maestro. Sin embargo.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. Cuando la CPU ordena leer o escribir un bloque a un controlador de discos. En forma similar los dispositivos esclavos.

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

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

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

2. 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. pero de a uno por vez. ya que cambiaria la dimensión. aunque los otros procesadores de E/S estén libres. 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. Para realizar operaciones de E/S cada subcanal debe tener un conjunto de registros: • UN BUFFER DE DATOS: permite almacenar los datos hasta que son transmitidos. • UN REGISTRO DE DIRECCIONES DE MEMORIA: apunta a la memoria. Reparte su tiempo entre los periféricos que están conectados a él. 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. 21 . puesto que no se puede comunicar con dos periféricos que están colgados al mismo procesador de E/S. Su problema es que se adapta mal al crecimiento. tiene la posibilidad de hacer un ensamblado o desensamblado de datos. De conexión en serie: con procesador de E/S puede atender a varios periféricos.TECNOLOGÍA DE CANALES: 1. 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.

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

Electrónico. Editores.: se puede ordenar a un disco que lea al cargar los valores de la dirección del disco. Es en realidad un intérprete busca las instrucciones de lenguaje de máquina tales como ADD. Aquí se encuentra el intérprete de comandos que es el SHELL. y la instrucción (Read – Write). El Software para computadora se clasifica en dos clases: • Programas del Sistema o Software de Base: Controla las operaciones de la computadora en sí. en fin un Sistema complejo. compiladores.. que tiene por lo general de 50 a 300 instrucciones. es conceptualmente más sencillo que tener que preocuparse de los detalles de movimiento de las cabezas del disco. por ejemplo: READ BLOCK FROM FILE. y otros dispositivos físicos similares. 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 programa fundamental de todos los programas del Sistemas es el Sistema Operativo (SO). el byte de conteo.: para hacer la instrucción ADD el microprograma debe determinar la localización de los números que se desean sumar. etc. la dirección de la memoria principal. Por arriba del SO. en sus registros. la más baja contiene los dispositivos físicos conformados por chips. es poco probable que pudieran escribirse muchos programas. procesar.SISTEMA OPERATIVO Introducción: Ya sabemos que una computadora sin el Software es una masa metálica sin utilidad. el cuál consta de varias capas. 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. 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. MOVE Y JUMP para llevarlas a cabo como una serie de pequeños pasos. esperar que se detengan. Por ej. etc. en la memoria exclusiva para lectura. Es importante saber que estos programas no forman parte del SO aunque fabricante de computadoras los 23 . Con el software puede almacenar. Un sistema de computación moderno consta de uno o más procesadores. discos. En esta capa los dispositivos de E/S se controlan al cargar valores en registros del dispositivo Especiales. buscarlos. La forma de construirlos y el responsable está a cargo del Ingeniero. está el resto del Software del Sistema. • Programas de Aplicación o Software de Aplicación: Los cuales resuelven problemas para los usuarios. relojes. Por ej. El conjunto de instrucciones que interpreta el microprograma definen al LENGUAJE DE MÁQUINA. En la figura siguiente vemos: En la parte inferior se encuentra el Hardware. Este software llamado microprograma se localiza por lo general. dispositivos de E/S. sumarlos y almacenar el resultado en alguna parte. tubos de rayos catódicos. la mayoría sirve para desplazar datos a través de la máquina. terminales. Ela práctica son necesarios muchos más parámetros. hacen operaciones aritméticas y comparan valores. y recuperar información.. 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. memoria principal ( o memoria central). Este nivel del Software se llama SO. cables.

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

CONCLUSIÓN 25 .

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

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

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

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

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

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

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

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

39 .

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

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

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

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

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

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

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

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

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

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

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

51 . Las pastillas disponibles comercialmente no sólo tienen salidas para A = E. que dará 0 si las palabras son iguales y 1 si son diferentes. Esta pastilla. Después se pueden pasar estas cuatro salidas por una compuerta OR. haciendo un total de 24 señales de entrada. que compara dos palabras de entrada. las cuatro compuertas OR EXCLUSIVO deben dar 0. la 74S330. que da 0 si las entradas son iguales y 1 si son distintas. cada una de 4 bits. 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 comparador sencillo de la figura 3-15 toma dos entradas. Si las dos palabras son iguales. Internamente se genera el complemento de cada una de ella. y produce un I1si son iguales y 0 si son distintas. 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. tiene líneas de entrada para 12 variables. Cada línea de entrada a las 50 compuertas AND contiene un fusible. 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. A y B. El circuito está basado en la compuerta OR EXCLUSIVO. que se muestra en la figura 3-16. Una pastilla muy general para realizar sumas de productos es el arreglo lógico programable ( designado también por sus siglas inglesas PLA).Comparadores Otra pastilla MSI muy útil es el comparador. sino también para A<B y para A>B. El usuario determina qué entrada va a qué compuerta AND por medio de una matriz de 24 x 50.

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

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

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

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

Flanco de bajada de REL1 3. Si tuvieran que realizarse esos eventos en un orden especifico. generando así un segundo reloj desfasado respecto al principal. Flanco de subida de REL2 4. Flanco de bajada de REL2 56 . sería necesario dividir el ciclo de reloj en subciclos.En una computadora pueden suceder muchas cosas durante un solo ciclo de reloj. 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. como se muestra en la figura 3-22(a). Flanco de subida de REL1 2. El diagrama de tiempos o cronograma de la figura 3-22(b) proporciona cuatro referencias de tiempo para eventos discretos: 1.

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

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

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

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

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

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

mientras que a las otras tres palabras les pasan ceros. se ha señalado que las líneas de datos de entrada y de salida son diferentes. interfiriendo en esa forma con los datos de entrada. En particular. es decir. Por tanto. forzar cada línea a un valor especifico. incluso en escritura. Si se hubieran conectado las compuertas OR a las líneas de salida. Las tres palabras no seleccionadas no contribuyen a la salida. por lo que se deshabilitan todas las compuertas de escritura y no se modifica ningún biestable. la línea de selección de palabra elegida habilita las compuertas AND conectadas a las salidas Q de la palabra seleccionada. 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. En cambio. es deseable tener algún modo de conectar las compuertas OR con las líneas de datos de salida 63 .La lectura es similar a la escritura. 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. La decodificación de direcciones es idéntica. la pastilla intentaría sacar datos. la salida de las compuertas OR es idéntica al valor guardado en la palabra seleccionada. En consecuencia. a veces eso causa problemas. Por esta razón. Pero ahora la línea CS • RD está en bajo.

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

y cuando es 1.byte seleccionado y ocho líneas para cargar y almacenar los datos. 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. para impedir la pérdida de su información. Tienen la propiedad de retener su contenido tanto tiempo como estén conectadas a la fuente de alimentación.. no la hay (v. Como la carga eléctrica tiende a fugarse. este último nombre es bastante inadecuado puesto que todas las pastillas de memoria son accesibles en forma aleatoria. Esta convención se verá en detalle más adelante. Las RAM dinámicas. Algunas memorias dinámicas tienen la lógica de refresco en la propia pastilla.g. Estas pastillas se denominan casi estatuas. Como el cuidado del refresco debe encomendarse a lógica externa. que pueden estar cargados o descargados. En muchas aplicaciones. se requiere de 16 pastillas en paralelo obteniendo una capacidad total de por lo menos 512K bytes. pero el término ya se ha arraigado. hay una salida presente. 65 . 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. por el contrario. Las barras colocadas sobre OE. horas o aun días. En la segunda. no usan circuitos biestables como los estudiados. Nótese que para construir una memoria con una palabra de memoria de 16 bits a partir de pastillas de 256K x 1. se necesitan 18 líneas para direccionar el bit seleccionado. sean segundos. En ambos casos se requiere de líneas para distinguir lecturas de escrituras y para la selección de la pastilla. aunque en muchas aplicaciones esta desventaja está compensada por su mayor capacidad. 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. la salida está desconectada del circuito). 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). La línea WE representa la habilitación de escritura. cada bit de la RAM dinámica debe refrescarse cada pocos milisegundos. Las memorias que hemos estudiado hasta ahora pueden utilizarse para leer o escribir. cuando tiene un valor de 0. La línea OE representa la habilitación de salida. sino que están construidas como un conjunto de pequeños condensadores. minutos. pero sólo una línea para sacar los datos. Se suelen denominar memorias vivas o RAM (siglas inglesas para memoria de acceso aleatorio). Las RAM no son los tarcos tipos de pastillas de memoria.

que no pueden cambiarse de ninguna manera. a pasar de que los tiempos de acceso en lectura de las ROM. todos sus bits se ponen a 1. 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.como juguetes. Las EEPROM difieren de las RAM en que el tiempo necesario para grabar o borrar un byte es miles de veces mayor. para amortizar el precio de hacer la máscara. Estos requisitos llevaron al desarrollo de las memorias fijas o ROM (siglas inglesas para memoria de sólo lectura). Una pastilla de microprocesador típica tiene entre 40 y 132 patas. sin necesidad de que las introduzcan en un receptáculo especial para exponerlas a luz ultravioleta. Aunque lo que sigue se refiere específicamente a los microprocesadores. Las ROM son mucho más baratas quejas RAM cuando se piden en grandes cantidades. la que la hace apropiada para el nivel de la lógica digital que se estudia. Los datos se graban durante la fabricación de la ROM. cómo la CPU hace referencia a la memoria. otras aceptan señales del exterior y algunas realizan ambas funciones. Microprocesadores Para los fines de este libro. que pueden borrarse mediante impulsos eléctricos. las ideas básicas (por ejemplo. Cuando la ventana de cuarzo de una EPROM se expone a luz ultravioleta potente durante unos 15 minutos. También se proporcionará una introducción al diseño de buses. se aprende cómo interacciona la CPU con la memoria y los dispositivos de E/S al nivel de lógica digital. se usará el término "microprocesador" para denominar a cualquier CPU contenida en una sola pastilla. en cierta medida. los programas. EEPROM y RAM son similares (al máximo unas centenas de nanosegundos). incluyendo el significado de las señales asociadas a cada terminal. 66 . 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. ni el programa ni esos datos van a cambiarse nunca. que no sólo puede programarse sino también borrarse. se puede abordar ahora el tema principal de este capítulo. 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. una vez instalados. Las patas de una pastilla de microprocesador pueden dividirse en tres tipos: dirección. 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. El siguiente avance en esta tinca fue la EPROM (PROM borrable). Si se entiende la función de cada una de las patas. PROM. Algunas patas envían señales de la CPU. los microprocesadores. Además. MICROPROCESADORES Y BUSES Con la información acerca de las pastillas de memoria en sus diferentes escalas de integración. 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. a través de las cuales se establece su relación con el mundo exterior. Sin embargo son inflexibles. Esta definición está basada en el empacado de componentes. Aún mejores que las EPROM son las EEPROM (EPROM eléctricamente borrables) también llamadas EAROM (ROM eléctricamente alterables). cómo se conectan los dispositivos de E/S. los programas y parte de los datos deben permanecer aun cuando se desconecte la alimentación. aun cuando algunas de ellas tengan la arquitectura y el poder de cómputo de pequeñas macrocomputadoras. 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.) también son válidas para las minicomputadoras y. 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. 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. etc. aunque de una manera algo diferente. electrodomésticos y automóviles. para las macrocomputadoras.

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

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

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

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

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

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

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

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

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

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

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

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

CONCLUSIÓN 79 .

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

para reservar espacio a las variables locales. de la 4000 ala 4019. El vector y empieza en la 3980 para y[l] y se extiende ala 3999 para y[20]. Otra operación que puede realizarse en una pila es avanzar el apuntador de pila sin apilar ningún dato. El vector x requiere 20 palabras. 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. Mientras 105 . Esto suele hacerse cuando se entra en un procedimiento o función. la variable k del programa Pascal se guarda en la dirección 4020 (todas las direcciones en decimal). no se pueden usar para guardar variables. La figura 4-13(a) muestra la asignación de memoria durante la ejecución del programa principal de la figura 4-11. por tanto. eliminándolo de ella incrementando la dirección del apuntador de pila. 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.guardando el último elemento en Y.

contienen 2 y k respectivamente. 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. Cuando se haya terminado mulp y se haya llamado a interno. SP tiene 3977. Cuando empieza mulp. de manera que mulp sepa dónde volver cuando termine. pero.y luego ejecuta la instrucción de llamada. 2yk. Lo primero que hace es avanzar el apuntador de pila en 2 unidades. ya que son los nombres de los parámetros formales de mulp. Las cinco palabras de la cima de la pila constituyen la parte de pila utilizada por mulp y se liberarán cuando termine. la configuración de la pila será la mostrada en la figura 4-13(c). 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). De manera similar. pero no desde el programa principal.DONDE. la pila estará como muestra la figura 4-13(d). p y j. mulp funcionaría cuando se le llama desde el programa principal. En otras palabras. con lo cual indica que esta dirección es la última de la pila. Cuando el programa principal quiere llamar a mulp.DONDE funcionará cuando se le llame desde in. En este punto SP vale 3975.el programa principal se ejecuta fuera de mulp. para reservar dos palabras para sus variables locales. 106 . Las palabras 3979 y 3978 están rotuladas como a y b. 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. primero apila los parámetros de la llamada. Cuando interno llame a mulp. SP tiene el valor 3980.terno. por supuesto. MOVE 3971. como muestra la figura 4-13(b). que apila la dirección de retorno.

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

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

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

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

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

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

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

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

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

Se necesita AND porque el campo R1 lleva tanto el bus A como el C. rim:=r2. 4-17. Además. if r2 = 0 then z:=true rdm:=r1. esc Lec Esc if n then goto r if z then goto r goto r Fig. a la derecha. Los tamaños y funciones del M PC. En particular. análogos a los de A.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. en lugar de 32). el incrementador. La ruta de datos. Código de operación del Mac-2 Vamos a rehacer la figura 4-10 para mostrar las nuevas microinstrucciones. 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. necesitaremos decodificadores de 4 a 16 para los campos R1 y R2. Las tres principales diferencias entre la figura 4-10 y la figura 4-18 son los bloques rotulados AND. La figura 4-18 muestra el nuevo diagrama de bloques. La mayor parte de la porción de control. representada a la izquierda. es idéntica a la anterior. el reloj y la lógica de microsecuenciamiento son idénticos a los del diseño horizontal. aún necesitamos el MIR y la memoria de control (aunque esta vez con anchura de 12 bits. NZ y "Decodificación de OP".ciclo 3. 116 . en el sub. 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. lec rdm:=r1. también quedará igual. B y C de la figura 4-10. el Mmux.

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

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

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

120 .

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

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

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

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

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

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

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

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

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

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

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

después de todo. 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. ya que puede encontrar el renglón adecuado indexando en la caché con una porción de la dirección como índice. Por otra parte. 132 . Tanto la caché asociativa como la de mapeo directo son de hecho. 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. por ejemplo. Si n = 1 se regresa a una memoria caché de mapeo directo con un registro por renglón. pues nunca se presentan conflictos. Supóngase que la instrucción moviera la dirección 4100 a la 12292 en lugar de ala 12296. 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. La PDP-11/70. Dependiendo de los detalles del microprograma.El hecho de que muchos bloques se mapeen en un mismo renglón puede causar problemas. La meta. La salida de esta dificultad consiste en expandir la caché de mapeo directo con más de un registro por renglón. tenía dos registros por renglón. es mejorar el rendimiento. la dirección que se calculara después permanecería en la caché. 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. Las memorias caché asociativas y de mapeo directo tienen diferentes puntos fuertes y débiles. fácil de construir y tiene un tiempo de acceso más rápido. ambas direcciones se mapearían al renglón 1. mientras que la otra sería purgada. casos especiales de la asociativa agrupada. Si se reduce el número de renglones a 1. la de mapeo directo es más sencilla. 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.

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

CONCLUSIÓN 134 .

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Después el nuevo valor de R se Auto-incrementado inderecto utiliza como la dirección de memoria que contiene un apuntador al operando. Por el contrario. (b) Fig. a) Formato de una instrucción de la PDP-11 de dos direcciones. Si la pila crece de las direcciones altas a las bajas y el apuntador de pila apunta siempre a la parte superior (es decir. R es el registro especificado con el modo. 4 Primero se decrementa R en 1 o 2. Después de este paso. a la dirección más baja de memoria que contiene un elemento de la pila). en lugar de hacerlo a la última ocupada. se puede usar la modalidad de decremento predeterminado para apilar y la de incremento posterior para desapilar. En los modos 6 y 7 el contador se programa (R7) se incrementa en 2 inmediatamente después de extraer la siguiente palabra. 5-33. antes de ejecutar la instrucción. se puede usar entonces el incremento posterior para apilar y el decremento predeterminado para desapilar. 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. 159 .'si la pila crece de las direcciones bajas a las altas y.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. Después el nuevo valor de R se Auto-incrementado utiliza como un apuntador al operando. 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. 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. Cuál de los sistemas a utilizar depende de las preferencias y de los antecedentes de uso. 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. b) Descripción de los modos de direccionamiento de la PDP-11. Después se incrementa R en 1 o 2. pero antes de ejecutar la instrucción.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

1. l. se elimina una trama de 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).torres (2. que es la segunda llamada: torres (l. después del retorno. Seguidamente el procedimiento retorna. 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). 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. l. elimina una trama de la pila y deja BL y AP como en la figura 5-49(d). Esta vez la comprobación de sí n = 1 falla de nuevo y se hace la llamada torres (1. 178 . Se imprime otra línea y. Se pueden pasar parámetros por registro o por la pila. Esta vez la comprobación tiene éxito y se imprime una línea. como se muestra en la figura 5-49(e). 2) Después de completar esta llamada. El procedimiento continúa ejecutándose en la dirección de retorno.

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

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

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

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

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

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

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

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

CONCLUSIÓN 187 .

BOLILLA III: ARQUITECTURA DEL PROCESADOR 188 .

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

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

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

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

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

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

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

INTRODUCCIÓN 196 .

Por otro lado. Veremos aquí estos componentes y su interconexión. Además. el de su derecha es donde se le introducen datos. 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. DESCRIPCIÓN DE LOS COMPONENTES DE UN PROCESADOR En una visión muy general un ordenador lo podemos asimilar a la siguiente situación. Procesadores. Marcelo Martinez 2003 ARQUITECTURA DEL PROCESADOR ESTRUCTURA GENERAL Una computadora digital es un sistema de procesadores. 197 .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 interconectados. requerimientos ó instrucciones y el de su izquierda es donde el entrega datos o respuestas a los requerimientos. también tiene a cada lado un canasto. Esto se puede apreciar en la siguiente figura (Figura 1). en la pared hay un reloj donde se le indica el tiempo que tiene para resolver cada instrucción. 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. 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.

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

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

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. 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.Almacenamiento Secundario" (discos magnéticos. Disquetes. Si es una transferencia de información con el exterior. Estas "Unidades de Transferencia de Información". 200 . etc). se cede el control aun canal. se ocupan de gobernar los canales o buses. En resumen podemos representar un ordenador como un conjunto ensamblado de diferentes unidades. es la Unidad Aritmética y Lógica quien lo realiza. cuyo funcionamiento está regido por un programa registrado en la memoria principal. al igual que si se debiera efectuar una comparación lógica y tomar una decisión. Figura 3 MICROPROCESADORES En la Figura 4 se puede apreciar la organización de una microcomputadora con un solo bus o canal. cintas magnéticas. La Unidad Central de Procesamiento (CPU) es el "cerebro" de la computadora. 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. Si la operación es un cálculo.

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

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

donde pueden ser usadas como entradas para la ALU en instrucciones subsecuentes. Las instrucciones de registro a memoria permiten que una palabra de memoria sea extraída a los registros. 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. lleva a cabo alguna operación con ellos y almacena el resultado en otro registro. el cual a su vez puede ser almacenado en la memoria. Una instrucción de memoria a memoria extrae sus operandos de la memoria y lleva estos a los registros de entrada de la ALU. 203 . colocando el resultado en el registro de salida. restas y otras operaciones sencillas sobre el contenido de los registros de entrada. • De memoria a memoria. donde realiza su operación y escribe el resultado en la memoria. Las instrucciones pueden dividirse en tres categorías: • De registro a memoria. los lleva a los registros de entrada de la ALU. • De registro a registro. Una instrucción típica de registro a registro extrae dos operandos de los registros.La Unidad Aritmética y Lógica realiza sumas.

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

donde el acumulador sustituye a los registros R1.Cada una de setas tres instrucciones comportará un código de operación y una dirección. 205 . 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. Este es el caso de la computadora conocida como "Abacus". R2 de la figura anterior. El segundo operando puede almacenarse durante la operación en el “Registro de Palabra” asociado a la memoria.

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

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

El operando a almacenar está en el Acumulador. Acto seguido completa la ejecución ordenando a la memoria una operación de escritura. 208 .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. La Unidad de Control ordena su transferencia al Registro de Selección de la memoria. La Unidad de Control ordena su transferencia al Registro de Palabra.

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. o sea que este no tendrá efecto si no se satisface una determinada condición. El salto puede ser condicional. INSTRUCCIÓN DE RUPTURA DE SECUENCIA Este tipo de instrucción. sino por una instrucción cuya dirección viene suministrada por la propia instrucción de salto. normalmente relacionada con el contenido del acumulador. de manera que contenga la dirección de la siguiente instrucción.. de una unidad a este contador. no por la instrucción almacenada en la siguiente dirección de memoria. Si la respuesta de la Unidad Aritmética y Lógica es que la condición ha sido satisfecha. el programa continuar en secuencia. Esto puede verse en la figura 12. 209 . también llamado instrucción de bifurcado o de salto. 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. la Unidad de Control ordena la transferencia de la dirección al Contador de Programa e inhibe la suma. haciendo que la instrucción de salto sea seguida. en caso contrario ordena incrementar en uno al Contador de Programa. en caso de no cumplirse esta condición. permite modificar el desarrollo secuencial del programa.

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

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

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

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

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

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

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

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

INTRODUCCIÓN 223 .

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

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

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

es necesario entender que es en realidad un error. que aun con "d" cambios. Sí una lectura de memoria da una palabra invalida. Dadas dos palabras códigos cualquiera. Supongamos que una palabra de memoria es de "m" bits de datos a los que se agregan "r" bits redundantes o de verificación. dependen de su distancia de Hamming. la computadora sabe que ha ocurrido un error de memoria. consideremos que agregamos un bit de paridad. El número de bits en el que difieren dos palabras códigos se llama "distancia de Hamming". se encuentra la Unidad de Memoria Central ó Principal. Para detectar "d" errores de un bit se necesita de un código con una distancia "d + 1". 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. los resultados parciales y los resultado finales del proceso. dentro de la Unidad Central de Proceso. se verifican los bit adicionales para ver si ha ocurrido un error. es posible determinar en cuantos bits difieren. "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 . 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. CLASIFICACIÓN Y ORGANIZACIÓN DE LAS MEMORIAS En la descripción de los componentes de un procesador. nunca se necesita tener acceso a toda la información simultáneamente. hay una diferencia de 3 bits. Para referirse a una unidad de "n" bits. Esto significa que si dos palabras están separadas ente sí por una distancia de Hamming de "d" bits. Como ejemplo sencillo de códigos detectores de errores. en la que se almacenan las instrucciones. conteniendo "m" datos y "r" bits de verificación.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. 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. 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. los datos u operandos. Por ejemplo. Cuando se usan estos códigos se agregan bits extras a cada palabra de memoria en una forma especial. Dicho código tiene una distancia de 2. Las propiedades de detección y corrección de errores. Cuando la cantidad de información a memorizar es elevada y en especial cuando el sistema digital de proceso es programable. Para prevenir tales errores. la mayoría usan códigos de detección o de corrección de errores. existen "2 m" combinaciones de bits legales. De la misma manera. se necesitarán "d" de verificación para convertir un código en otro. Cuando en un procesador. Cuando se lee una palabra de la memoria. además de los datos. únicamente "2m" de las "2n" palabra códigos son válidas. el cual se elige de modo que el número de bits con valor 1 sea par (o impar). se utiliza el término "palabra código". el sistema es especializado y el número de bits a memorizar es pequeño. para corregir errores de un solo bit se requiere de un código con una distancia "2d + 1". la palabra original está más cerca que cualquier otra y puede ser unívocamente determinada. pues así las palabras códigos legales se encuentran tan separadas entre sí. Se puede usar para detectar errores sencillos. y han de memorizarse las instrucciones del programa. pero por la forma en que se calculan los bits de verificación. Para entender como se manejan los errores. ya que cualquier error de un solo bit produce una palabra código con la paridad equivocada. siendo "n" la longitud total (es decir n = m + r). entre las palabras código 10001001 y 10110001. En una palabra de memoria de "m" bits.

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

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. se denomina "acceso a la memoria". El almacenamiento de información en cantidades elevadas (cientos de miles de "k" palabras). Por lo tanto el tiempo de acceso a cualquier posición de la memoria es el mismo 229 . lo que da lugar a la división de las memorias indicadas en la figura 3. o leer la que contiene. Por ello existen varias formas de acceso a una posición de memoria. nunca es necesario leer o escribir simultáneamente todas las posiciones de una memoria. se realiza actualmente en sistemas físicos que poseen partes en movimiento y reciben el nombre genérico de periféricos. Aleatoriamente se puede seleccionar cualquier posición de la memoria para introducir información o leer la que contiene. 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.Formas de acceder a las posiciones de memoria La acción de introducir información (escribir ó grabar) en una posición de memoria. Tal como se dijo.

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

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. tanto para leer como para escribir. la memoria lleva a los terminales de salida "O 3 O2 O1 O0" la palabra almacenada en el registro direccionado. Entonces no es posible ni leer ni escribir en memoria. Para leer la memoria presentamos la dirección. la pastilla está aislada del mundo exterior. se indica en la figura 5. habilitamos la entrada CS y ponemos la entrada de WE = 1. Nuestro interés se centra en la estructura lógica de la memoria y no en los detalles electrónicos. Por lo tanto.Write Enable) y de "Selección de Pastilla" (CS = Chip Select). La memoria de la figura anterior se describe como una memoria de 8 palabras de 4 bits / palabra. es decir. El numero total de bits en la figura anterior es "8 x 4 = 32". 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. Además como podemos escoger cualquier registro de memoria aleatoriamente. Debido a que podemos leer o escribir palabras en la memoria. Estructura de una RAM semiconductora En principio la estructura lógica de una RAM semiconductora. del tipo que hemos discutido. también se las conoce como "memorias de acceso aleatorio" ó "RAM = Ramdom Access Memory". activada. En esta disponemos de cuatro palabras de 2 bits cada una. la organización de la memoria es "4 x 2". esta se denomina de "lectura / escritura". En base ala convención adoptada. Si CS no se activa. 231 . hemos incorporado algunas simplificaciones en comparación con una memoria física real. es decir. La forma de disponer los bits en palabras se denomina organización de la memoria. En el proceso de lectura.

Si "CS = 1 " y "WE = 0 ".La estructura utiliza el conmutador controlado por lógica. Si "CS = 1" y "WE = 1". es decir formados por dos inversores acoplados. para que la palabra almacenada pueda ser leída. Comercialmente se disponen de pastillas de Circuito Integrado (IC = Integrated Circuit) que tienen incorporados "65. Cuando tenemos. O sea. Los bits se almacenan en "Flip-Flop" elementales. Los bits de dirección "A1" "A0" se aplican al decodificador. Si la selección de la pastilla está en cero lógico. 232 . los flip-flop se conectarán a los terminales de salida. 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. ya que solamente los conmutadores de estos flip-flops están cerrados y por consiguiente conectados con las líneas de bits.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. la salida de la puerta 62 está en "1" lógico. a un precio bastante bajo. solo se puede acceder a los flip-flop del Registro de Palabra 2. 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. "A1 = 1" y "A0 = 0". por ejemplo. la entrada de dirección "A1 A0 = 10" direcciona la palabra 2 y sólo la palabra 2. Por lo tanto. cuando el nivel lógico de la línea de control es "0". el conmutador se abre. cuando el nivel lógico de la línea de control (línea de trazos que atraviesa el conmutador) es "1". el conmutador se cierra y se establece la conexión.

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

las salidas de las pastillas tendrán que aplicarse a un bus común. "A1". El esquema paralelo de la figura 7. 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. por ejemplo. "A1". Por lo tanto. 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. Supongamos.Los bits de selección "A0". Ahora una palabra de salida se lee a veces de una pastilla o a veces de otra. Las salidas del decodificador se utilizan entonces para activar las entradas de selección de pastillas. surge en este caso que estamos considerando. "A2" a los terminales de entrada de dirección de las pastillas. Un problema especial. Los bits de entrada de datos y la entrada WE se aplican en común a ambas pastillas. "A2" seleccionan la posición de una palabra particular en la pastilla seleccionada. ésta es la razón por la que aparece dicho bus en la figura 7. extenderse a más pastillas. Como antes. Podemos introducir un bit de dirección "A5". Los bits de dirección "A4" y "A5" se aplicarían aun decodificador como se indica en la figura 8. puede. Presumiblemente la palabra se transmitirá al mismo destino independientemente de la pastilla que la origine. por supuesto. podríamos aplicar tres bits de dirección "A0". 234 .

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

Para introducir información en una posición hay que hacerla pasar por todas las que la preceden hasta alcanzar los terminales de entrada. y por lo tanto. en estas memorias de acceso serie. y de acuerdo a la forma de entrada-salida.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.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. Dentro de este tipo de memorias. consta de un decodificador y de un codificador. Los registros de desplazamiento se clasifican en dos clases.Registros de desplazamiento estáticos: Son aquellos en los que los impulsos de desplazamiento pueden anularse por tiempo indefinido. 2. la información queda almacenada en las diferentes posiciones de la memoria alas que fue llevada por el último impulso de desplazamiento aplicado.es más que un conversor de código. 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. cada orden externa de escritura o lectura desplaza la información una posición en el interior de la memoria. De forma similar. 236 .Registros de desplazamiento: Como ya hemos visto. b. de acuerdo con las características de frecuencia de los impulsos de desplazamiento: a. Se puede deducir que la memoria FIFO se comporta igual que un registro de desplazamiento en la operación de lectura. 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. pero no así en la operación de escritura. 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. las mismas pueden clasificarse en: 1. La orden externa de desplazamiento está constituida por los impulsos de un generador. 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. 237 .3.

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. 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. b. 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. 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. La información almacenada en cada posición de una memoria asociativa puede estar organizada de dos formas fundamentales: a. 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.El alumno puede deducir que en una operación de escritura. 238 .

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

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

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

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

Modo de direccionamiento por registro indirecto Algunas computadoras que incorporan la facultad del direccionamiento de registro indirecto. Este. apunta a la posición de memoria del operando. 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. la instrucción completa se incluye en los bits asignados a la parte de operación de la instrucción. tienen un registro especial. uno contiene el índice y el otro el valor máximo de este índice. En muchos ordenadores pequeños se implantan los índices en posiciones reservadas de la memoria central. registro "P" contiene la dirección del operando. a menudo llamado "Puntero" (P) (Pointer Register). Una instrucción que invoque realmente direccionamiento de registro indirecto no tiene bits significativos en su parte de dirección. con la existencia de varios registros índice. La figura 16 ilustra el concepto de indexación. En su lugar. 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". El índice se incrementa en uno a cada pasada y se sale del bucle cuando el índice es cero. 243 . el Indice se inicializa en "-(n-1)". inicialmente puesto a cero e incrementando en uno cada vez que se ejecute la instrucción de fin de bucle. donde "n" representa el número de los elementos del vector. Otras máquinas poseen dos registros índice. En algunos ordenadores. En algunas máquinas también existen registros de autoíndice incrementables en 1 cada vez que son referenciados. es decir.indexado. 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. con objeto de economizar el costo de los correspondientes registros. La dirección especificada en la instrucción es la última del vector. 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.

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

CONCLUSIÓN 245 .

BOLILLA V: EL NIVEL DEL LENGUAJE ENSAMBLADOR 246 .

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

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

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

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

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

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

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

INTRODUCCIÓN 254 .

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

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

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

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

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

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

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

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

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

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

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

Además. imprimir el listado del ensamblaje. La segunda pasada La función de la segunda pasada es generar el programa objeto y. Hay muchas técnicas con las que se evalúan expresiones aritméticas. debe producir cierta información necesaria para que el programa ligador enlace procedimientos ensamblados en momentos diferentes. Cuando se lee seudo instrucción END. 266 . si se necesita. La tabla de literales ordenados se examina para ver si hay duplicaciones que se puedan eliminar. Una vez que se conocen los valores numéricos. Encontrará primero los valores de los símbolos y las direcciones de los literales en las tablas respectivas. se termina la primera pasada. posiblemente. La figura 7-7 muestra un procedimiento para efectuar la segunda pasada.parte. se evalúa la expresión. eliminando las operaciones de E/S en el disco. 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 EvalúaExpresión ha de convertir la expresión simbólica en un número binario. Entonces se ordenan la tabla de símbolos y la de literales. la segunda pasada puede obtener sus entradas de ésta. si el programa que está siendo ensamblado es tan corto como para caber en la tabla. 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.

El algoritmo funciona comparando el elemento central de la tabla con el símbolo. 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. Se ha usado un símbolo no definido. No se le han suministrado al código de operación suficientes operandos 5. Cualquiera que haya escrito alguna vez un programa en cualquier lenguaje. Suponiendo que el elemento central de la tabla no es igual al símbolo buscado. Falta de sentencia END Los programadores son más ingeniosos cuando se ponen a buscar nuevas formas de cometer errores. Se le han suministrado demasiados operandos al código de operación 6. el primer elemento de los cuales es el símbolo (o apunta a él) y el segundo el valor (o un apuntador a él). sabe hasta que punto es realista dicha suposición. desde el punto de vista conceptual. Se ha definido un símbolo mas de una vez. Este método es fácil de programar. 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. Poco puede hacerse para corregir la mayoría de los otros errores. El método más sencillo de realización ( secuencial ) es organizar la tabla como un vector de pares. al menos sabemos en qué mitad seguir buscando. Al aplicar este algoritmo recursivamente. Un número octal contiene un 8 o un 9 7. hay que proseguir la búsqueda en la primera mitad de la tabla. valor). la que entonces se coloca en un buffer de salida. pero es lento. Dado un símbolo. Ahora se puede aplicar la búsqueda binaria a la mitad apropiada. se puede ensamblar la instrucción completa. 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. este método es mucho más rápido que la búsqueda lineal. Lo mejor que puede hacer un ensamblador con una sentencia errónea es imprimir un mensaje de error e intentar continuar ensamblando. Todos los métodos intentan simular una memoria asociativa que. salto a un registro) 8. valdrá casi cualquier función de la entrada que dé 267 . 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. la búsqueda en una tabla de n elementos requerirá unos log2 n intentos. Un método totalmente diferente de simular una memoria asociativa es la técnica denominada codificación por transformación. la rutina de la tabla de símbolos simplemente busca en forma lineal en la tabla hasta que lo encuentra. 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. Algunos de los errores mas comunes son: 1. Si éste se localiza en orden alfabético por delante de aquél. 2. la búsqueda termina. con lo que se obtendrá la coincidencia o el cuarto de tabla donde seguir buscando. ya que en promedio se ha de recorrer la mitad de la tabla. Evidentemente. 3. 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 . 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. Hay varias formas de organizar la tabla de símbolos: veremos algunas de ellas en esta sección. De hecho. El nombre del campo de código de operación no es un código de operación válido 4. puede extraerse la siguiente instrucción. Después de que se haya ajustado el CPI. y si está después en la segunda mitad. Dado un símbolo que buscar. es un conjunto de pares (símbolo. pero requiere ordenar primero la tabla. Si es igual. Uso no permitido de registros (por ejemplo. Hasta ahora supusimos que el programa fuente no contiene ningún error . La tabla de símbolos Durante la primera pasada del proceso de ensamblaje. para luego escribirla en un disco cuando éste se llene.

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. los símbolos se encontrarán con frecuencia en el primer elemento de la lista correspondiente. 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. Los símbolos se pueden almacenar en una tabla de k elementos numerados de 0 a k . Ajustando k podremos reducir el tamaño de la tabla al costo de búsquedas más lentas. 268 .1. Eligiendo k aproximada.mente igual a n. Todos los pares (símbolo.una distribución uniforme de los valores de salida. la media de las longitudes de las listas será n.

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

siempre que el nombre de la macro (CAMBIA. expansión de macro.de caracteres. es imposible decir si se han utilizado macros en su generación. Las llamadas a macros no deben confundirse con las llamadas a procedimientos. Desde ese momento. y más tarde será ejecutada para llamar al procedimiento. en el ejemplo de la figura 7-9) aparezca como código de operación. signos de puntuación y "retornos de carro" (cambio a una línea nueva). 270 . 7-10. el ensamblador lo remplazará por su cuerpo. mientras que una llamada a un procedimiento es una instrucción de máquina que será insertada en el programa objeto. ya que la expansión de macros se terminó y sus definiciones fueron eliminadas al finalizar el proceso de ensamblaje. La expansión de una macro se produce durante el proceso de ensamblaje. 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. Comparación entre llamadas a macro y a procedimientos. sin preocuparse de su significado. se introduce en el ensamblador. El uso del nombre de una macro como código de operación se denomina llamada a macro y su reemplazo por el cuerpo. Recuérdese que un programa es una cadena de caracteres. 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. que incluye letras. 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. Este punto es muy importante. Las macros no son más que un método que permite manipular cadenas . no durante el proceso de ejecución del programa. Si se considera solamente el programa en lenguaje máquina. durante la cual se salvan las definiciones de macro y se expanden las llamadas. La figura 7-10 compara llamadas a macro con llamadas a procedimiento. La salida resultante. puede ser más simple desde el punto de vista conceptual pensar en un ensamblador con una pasada anterior a la primera. un programa en lenguaje ensamblador que no contiene macros. 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. No Sí Sí 1 Aunque las macros generalmente se expanden en la primera pasada del proceso de ensamblaje. Desde este punto de vista. espacios. 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.definiciones de macros para su uso posterior. dígitos.

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

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

de esta manera este proceso de dos pasos puede ahorrar una gran cantidad de tiempo durante el desarrollo de un programa largo. El enlace es generalmente mucho más rápido que la traducción. 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.

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

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

Basado en esta tabla. La primera contiene el nombre del módulo. Busca todas las instrucciones que hacen referencia a otros procedimientos e inserta en ellas la dirección de los mismos. cierta información necesaria para el ensamble. la fecha de ensamblaje. como se ve en la figura 7-15. Busca todas las instrucciones que contengan una dirección de memoria y. algunas veces. 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. 2. a cada una de ellas. Estructura interna de un módulo objeto producida por un traductor. 4.ensamblador . entonces la tabla de 276 . como las longitudes de las distintas partes del módulo objeto y. le suma una constante de reubicación igual a la dirección de comienzo del módulo en el que están contenidas. 7-15. 3. Construye una tabla de todos los módulos objeto y sus longitudes. asigna una dirección de carga a cada módulo objeto. Por ejemplo. Estructura de un módulo objeto Los módulos objeto contienen seis partes. 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. 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. si el módulo consta de un procedimiento llamado “GRANLIO”. 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.

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

Cuando se ejecuta la instrucción que contiene la dirección. Cuando se escribe un programa. El momento en que se determina la dirección real de memoria correspondiente a LUGAR se llama tiempo de ligadura. 3. Cuando el programa se traduce. pero antes de cargarse. Cuando se carga un registro de base usado para direccionamiento. Hayal menos seis posibilidades para el tiempo de ligadura: 1. 2. 278 . 4. 6. como en SALTA LUGAR. Cuando el programa se escribe. 5. contiene nombres simbólicos para las direcciones de memoria. Cuando se liga el programa.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. Cuando el programa se carga.

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

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

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

CONCLUSIÓN 282 .

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

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

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

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

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

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

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

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

INTRODUCCIÓN 291 .

La eficacia de un sistema informático depende de la velocidad de trabajo de sus periféricos. 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. como el quipu de loS Incas. 3. Debido a esto se vio obligado a ayudase de diversas maneras. Serie: las diversas señales se transmiten bit a bit. una tras otra. En Europa los griegos. En Oriente se fabricaron los primeros ábacos que todavía se utilizan en algunos países. 2. 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. 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. En España el ábaco se utilizo hasta prácticamente el siglo XX pero con el nombre de contador . La comunicación a través de protocolos de comunicaciones que compatibilizan la transmisión de datos entre ambos. posteriormente debido a intercambios comerciales con otros pueblos. los buses. Paralelo: todas las señales que integran una palabra o dato unitario se transfiere simultáneamente a través de cables separados paralelos. Existen básicamente dos métodos para la transmisión de datos : 4. en forma de ordenes de comando y datos para realizar los procesos necesarios. 5. 2. 4. sobre el mismo cable físico. 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. 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. 3. En Sudamérica también existieron herramientas que pudieron tener una utilización similar.APUNTES DE CATEDRA CARRERA: Cátedra: Profesor: AÑO: LICENCIATURA EN ANALISIS DE SISTEMAS – INGENIERIA EN SISTEMAS Procesamiento De Datos I Lic. La comunicación interactiva de la computadora con los usuarios durante el proceso. 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. Introducir en la computadora la información necesaria. 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. 292 . Los periféricos se comunican con la unidad central de proceso a través de los canales de transferencia de información. Existen diversas variantes de instrumento según las diferentes zonas donde se ha utilizado: 1.

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. dependiendo de su computadora y el modelo del teclado. el más popular . • Periféricos de salida. 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 . desde la tabla digitalizadoras hasta los ratones. Los teclados "Macintosh" se conectan al bus de escritorio apple (ADB). Los teclados proporcionan varias respuestas ( desde duras hasta blandas) y tiene varias disposiciones. Ky5). La mayoría proporciona el teclado "QWERTY" (debido al orden que siguen las teclas alfabéticas de la primera fila). los teclados se conectan a los circuitos de la tarjeta madre. el punto en relieve está en las teclas D . La mayoría de los teclados en las PCs son del tipo 101 (que brinda 101 tecla). El teclado transforma la pulsación de cada tecla en una señal electrónica particular que es reconocida por la C.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. En las PCs. 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.U. • Radial o en estrella: cada periférico se conecta con la computadora a través de su propia línea de comunicaciones. Están disponibles tres teclados Macintosh: • El apple estándar • El apple extendido. 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. grandes teclas etiquetadas con letras romana y punto en relieve en las teclas F. • Periféricos de almacenamiento de la información.C . aunque están disponibles varios estilos con más o menos teclas especiales. es la unidad periférica de entrada de datos al sistema informático más universal. el cuál maneja todas las formas de entrada de un usuario.P. Existen varios tipos de periféricos: • Periféricos de entrada. signos de acentuación y puntuación los diez decimales y símbolos 293 . como cubiertas de plástico para aplicaciones industriales o de servicio de comida. diodos emisor de luz (LED) y otras características. • 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. • Periféricos de comunicación.

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 un procesador de textos el cursos pasará a la línea siguiente. 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. entre los que se destacan: • Teclados Mecánicos • Teclados Electrónicos TECLADOS MECÁNICOS : Son más antiguos que los electrónicos y. o de algunos programas de aplicación comercial. Las ventajas de las teclas de función es órdenes a través del teclado.especiales. Al presionar una de ellas. 5° “Tecla CTRL” Esta tecla se denomina control. como la ejecución de un listado en la pantalla de la computadora. 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. El teclado tiene la particularidad de "atraer" las migas y cenizas. esta expuesto aciertos riesgos que pueden alterar su normal funcionamiento.procesos. ni fumar mientras se trabaja en la PC. como su nombre indica permite "escapar" de algunos . por ejemplo. 6° "Tecla ALT" Esta tecla se denomina alternar . Generalmente sirve para avisar al sistema operativo de que el usuario esta intentando realizar una acción especial. se acciona un contacto y la información se transmite a la computadora a través de cables. las teclas estarán en modo de control del cursor . y se usa en combinación con otras teclas. pulsando al mismo tiempo la tecla ALT y 164 se leerá en el monitor la letra ñ. TECLADOS ELECTRÓNICOS: Solucionaron el problema del efecto rebote creando un retardo en el controlador para eliminar las señales producidas por el mismo. 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. Los teclados mecánicos presentaron un problema debido a que. en la pantalla del sistema informático aparecerán los dígitos impresos en cada tecla numérica. estas se van depositando en los intersticios y 294 . Para que este mecanismo se desencadene normalmente hay que tomar ciertas precauciones : No es recomendable comer. Cuidados y advertencias Si bien el teclado es considerado un dispositivo no frágil. Por Ejemplo. en algunos casos. pudiéndose utilizar estas teclas para navegar por la pantalla de la computadora. menos fiables y caros de construir. 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. 7° “Tecla ESC" Se denomina escape. Existen varias tecnologías para la construcción de teclados de computadora. Dentro del teclado existe una placa con un contacto electrónico para cada tecla. también es una tecla que provoca acciones especiales de la computadora o de los programas que estén ejecutándose en ese momento. mientras no este pulsada. por su tecnología de construcción la parte mecánica de las teclas no efectuaba solo un contacto al pulsarla.

El ratón es la extensión del dedo humano para señalar.Ratones Mecánicos: Los ratones mecánicos constan de una bola situada en su parte inferior. se recomienda. cubierta de goma. el derrame de cualquier líquido sobre el teclado puede anular el funcionamiento de los contactos y facilitar al adherencia de suciedad. Por otra parte. cubrirlo con una funda mientras no este en uso. al quedar expuesto sobre el escritorio. tocar y escoger los objetos que se muestran ella pantalla. 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. 1. utilice alcohol isopropílico.al acumularse. Una limitación de los ratones ópticos es que se ubican sobre una superficie que refleje el haz de luz. roza unos contactos en forma de rueda que indican el movimiento del cursor en la pantalla del sistema informático. Tampoco es una buena costumbre dejar la taza de café cerca del teclado o apoyada sobre el gabinete. En cambio. para arrastrar un objeto o para seleccionar una opción en el menú desplegable. Existen dos tecnologías principales en fabricación de ratones: Mecánicos y Ópticos. Si se desea limpiarlo superficialmente nunca emplee alcohol común o sustancias solventes ya que puede dañar su mecanismo. Estas ruedas son las que informan a los circuitos integrados del ratón los cambios de posición. El mouse es simplemente un controlador del cursos o puntero que aparece en la pantalla del sistema informático al que se conecta. termina tapando los contactos. 2. metida dentro de una caja de plástico. Un decodificador convierte el movimiento del ratón en movimiento del cursos en la pantalla de la computadora. la bola. 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. lo que provoca dificultades tales como letras que no se marcan o se repiten y lentitud en la escritura. provocando problemas como los recién mencionados. Por ello. 295 . 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. el teclado se convierte en un inevitable depositario del polvo ambiental. 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 ).Ratones Ópticos: Los ratones ópticos tienen un pequeño haz de luz láser en lugar de la bola rodante de los mecánicos. 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. En el ratón se utiliza una bola de acero pesada. al moverse el ratón.

Los escáner leen imágenes en dos dimensiones y las convierten en bits.C. la única forma fácil y rápida de hacerlo es utilizando un periférico de este tipo. 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. 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 . esto se debe a que a diferencia de los traskballs y ratones tradicionales. Estos se basan en la tecnología Marble Sensing. No es fácil almacenar imágenes dentro de la computadora. no acepta otros objetos como lápices o puntos. El principio de funcionamiento de un escáner es la digitalización. no necesitan una superficie plana como el ratón esto es importante para ambientes reducidos y computadoras portátiles de baterías.Tipos de ratones Ratones Inalámbricos. ESCANER Son lectores ópticos de imágenes.Analog Converter) convierte los datos analógicos en valores digitales. 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). 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. 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. la conversión de una información analógica a datos comprensibles por la P. El click se puede hacer tanto presionando las dos pequeñas teclas ubicadas sobre el pad como ejecutando un leve golpe sobre su superficie. no requiere mantenimiento físico . BOLAS GIRATORIAS: Son similares a los ratones. Por último un DAC (Digital. Un caso particular de la utilización de un escáner ~ aunque representa una de sus principales ventajas. 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. el puntero se desplaza a la deriva por la pantalla. que posibilita el usuario un alto grado de precisión y libertad en los desplazamientos del cursor (Tracking). Su funcionamiento es simple para ello basta con posesionar un dedo sobre el pequeño pad y desplazarlo por su superficie. Las bolas giratorias tienen al menos dos botones: uno para hacer click o doble click y otro para seleccionar menú y arrastrar objetos. La tecnología Marble Sensing permite la medición óptica del movimiento mediante un sistema electrónico que actúa como una cámara. su aspecto es agradable y fino y su ergonomía se adapta de manera cómoda y natural. para ello se vale de una serie de componentes internos que posibilitan este objetivo. su cable presupone una mayor vida útil. no incorpora elementos mecánicos y por consiguiente no requiere de mantenimiento. indica el número de tonalidades de color que un píxel 296 . 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. llegándose a alcanzar los 1200 caracteres por segundo. Profundidad de color El parámetro expresado en bits. excepto que el cursor se mueve utilizando uno o más dedos para hacer girar la bola. es decir. Una fuente de luz va iluminando. que hace las veces de pantalla. al no experimentar continuos movimientos con el uso. donde el movimiento del mouse se toma dificultoso. Ratones Estacionarios.

de introducir información en una computadora es por medio de una codificación de barras 297 . el documento o imagen se coloca sobre un cristal bajo el cual la lente luminosa se desplaza. • Escáner de sobremesa. 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 . que debe ser digitalizado para que nuestro periférico. • Su precio. pero solamente envían a la PC 24 bits. • 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. aunque también más cara y realmente son los que más se están extendiendo. Hay algunos escáner capaces de utilizar 30 o incluso 36 bits de color. Escáner de Rodillo: Es una interesante alternativa. Los 24 bits de color se han convertido en un estándar . a medio camino entre los dos anteriores. La calidad obtenida no es tanta como los modelos de sobremesa pero es una excelente opción para usuarios con determinadas necesidades.puede adoptar. 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. • Escáner de rodillo. muchos escáner de mano incluyen una hoja con diferentes tonalidades de color. lo normal en la actualidad es un valor de 24 bits por píxeles. Escáner de Sobremesa: Representan la alternativa más profesional y de calidad. para disminuir el intervalo entre una tonalidad y la siguiente. Desventajas: • Su tamaño . Calibración Estos dispositivos necesitan ser calibrados. A modo de pequeñas fotocopiadoras. Ventajas: • Permite obtener una gran calidad y fiabilidad. Escáner de mano: Es la alternativa más económica. pero la mayoría lo hacen a nivel interno. Ventaja: • Es económico. digitalizando el documento. establezca los patrones necesarios. Tipos de escáner: Existen tres tipos : • Escáner de mano. como su nombre lo indica utiliza como mecanismo de tracción un rodillo que recoge automáticamente el documento y lo digitaliza.

La mecánicas. 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. debido al desgaste producido en sus componentes por el uso continuado. en la pantalla de la computadora. cada una de las líneas tiene un determinado valor dependiendo de su presencia o ausencia y también de su grosor . 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. como así también el control de acceso de personal en instalaciones de distinta índole. LAPIZ OPTICO: Los lápices ópticos son dispositivos de introducción de datos que trabajan directamente con la pantalla de la computadora. o bien en forma de lápiz óptico . Esta codificación ha sido definida de forma estándar por la Organización de Estándares Internacionales y. etc. se consigue una identificación para todo tipo de productos. Existen diversas tecnologías de construcción de tarjetas. por medio de las barras verticales de color negro. Estas coordenadas serán manejadas posteriormente por programas de dibujo. etc. en ella. Cada vez son más los productos que llevan en su etiqueta uno de estos códigos donde. siendo esta. El microprocesador calcula cual es la posición sobre la pantalla de la computadora permitiendo manipular la información representada en ella. señalando puntos en ellas y realizando operaciones de manejo de software.. el lector de tarjetas envía los datos n forma de bit a la unidad central del sistema de la computadora para su tratamiento. Los censores lectores de barras pueden estar fijos en una estructura de diferentes tamaños y tecnologías.verticales. Son una asistencia 298 . 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. 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. ingeniería. este envía la información aun software especial que la maneja. por ello. la más extendidas comercialmente en el mercado. El principal uso que se le da a estos subsistemas es el de control de mercaderías. A su vez. como pueden ser los que tienen en las cajas de algunos supermercados. un decodificador convierte los pulsos eléctricos en código binario para su tratamiento en la computadora. Las tabletas digitalizadoras convierten una serie de coordenadas espaciales en un código binario que se introduce en la computadora. Para operar con el lápiz óptico se coloca este sobre la pantalla del sistema informático. 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. pudiendo ser estas: • Tabletas Mecánicas • Tabletas Electrónicas. son menos precisas y más delicados de manejar que las electrónicas. 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. 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). Los lápices ópticos permiten la introducción de datos. 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. 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. el manejo del cursor.

siendo el principal medio de almacenamiento de la información que utilizan las computadoras. El acceso a la información almacenada se realiza en forma aleatoria. 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. A estas unidades de trabajo se las denominan disqueteras. 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"). Es evidente la reducción de tiempo que presenta el acceso aleatorio frente al secuencial. puede estar al principio o al final del soporte que lo contiene. 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. PERIFERICOS DE ALMACENAMIENTO: Los periféricos de almacenamiento. 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. La clasificación de los tipos de discos magnéticos es de carácter físico. debido a que aquellos tienen una mayor densidad de pistas por pulgada. debido a que la portabilidad. llamados también de memoria auxiliar. Los discos duros generalmente se denominan unidad "C". etc. sobre todo las que no son de gestión puras ( creativas. son unos dispositivos en los que se almacenan. 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. 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. anterior a la puesta en marcha operativa del primer periférico de acceso aleatorio . los datos que va a manejar la CPU durante el proceso.).para la limitaciones de los teclados en algunas aplicaciones. 299 . pero la utilización de la tecnología de acceso secuencial se debió ala implementación de la cinta magnética. Se diferencian entre sí en el soporte sobre el que se deposita la capa de material magnético. Habitualmente se les conoce como memoria masiva. 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. Los discos duros tienen mayor capacidad de almacenamiento sobre el mismo espacio que los discos flexibles. 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. y que no es posible mantener en la memoria principal. precisamente su ventaja. En la actualidad. La principal ventaja que poseen los disquetes frente los discos duros es su portabilidad. implica que sean muy vulnerables a los malos tratos por una manipulación descuidada cuando se encuentran fuera de las disqueteras de la computadora. temporal o permanentemente. Discos flexibles Son unos de los componentes más delicados del sistema informático.

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

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

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

para almacenar únicamente 6 minutos de vídeo. 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). 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. 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 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. 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. pero no lo es tanto en el campo del vídeo domestico: un usuario solo opondría grabar una sola vez en cada disco. Poco después. el nombre paso a ser digital Versatile Disk. El futuro del DVD: El DVD va a permitir la escritura de discos por medio de unos grabadores llamados DVD-R. y dado que su especificación solo permite una capacidad de 2. La idea de formato CD era buena pero se necesitaba conseguir mayor calidad a base de aumentar la capacidad de los discos. 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 . Prestaciones del DVD: El disco "básico" de DVD consta de una sola cara y una sola capa (equivalente a 4. que podrán escucharse sin problemas en cualquier reproductor . Debido a la gran capacidad de almacenamiento permitirá su uso como backup o copias de seguridad. Luego surgió el disco de doble cara ya la vez de doble capa llamado Digital Vídeo Disk o DVD. Al ser un soporte óptico las películas no se deterioran con el uso. en el DVD el tamaño de estos puntos se ha visto sustancialmente reducido.sonido sobre un soporte mas extendido como era el CD. lo que ya de por si le permite almacenar 133 minutos de vídeo de alta calidad. La utilidad de estos discos en el campo de la informática es evidente. y es aquí donde entra en escena el DVD-RAM sobre los diferentes metales en los 303 . tres pistas de sonido Dolby Digital y cuatro conjuntos de subtítulos para otros tantos idiomas.7 Gb de datos). Si además se hace uso de las dos caras y las dos capas se llega ya alas 8 horas de vídeo.6 Gb la duración se ve limitada a solo una hora de vídeo. mientras que Philips y Sony hicieron lo propio el MMCD (multimedia CD) pero con un disco de una sola cara aunque con dos capas.la imagen se encuentra comprimida pues de no ser así se necesitaran 700 Mb. Al hacer uso de la Tecnología de comprensión MPEG se llega a una cantidad que ronda el medio megabytes por segundo. 8 idiomas simultáneos y 32 subtítulos diferentes. y viendo el potencial que podría tener en el mundo de la informática. Para mejorar el enfoque y la calibración se ha sustituido el haz infrarrojo por un haz rojo. Incluso mantiene la compatibilidad con los CD de audio. La compresión MPEG-2: Al igual que sucede con el video-cd o el CD-I . y uno siempre obtiene la máxima calidad en pantalla. así como la distancia existente entre estos dando lugar a una mayor densidad de grabación en un mismo espacio. La diferencia es que en esta ocasión se ha optado por la compresión MPEG~2 bastante mas avanzada que su predecesora .A pesar de que el concepto que envuelve a la norma MPEG-2 es similar ala MPEG-l se han incluido extensiones para cubrir un rango de aplicaciones mas amplio como la cuantizacion no lineal. 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.

En estos momentos casi todos los sistemas informáticos comerciales se configuran con pantallas de color . pero se diferencian de manera importante en su modo de funcionamiento. El tamaño lógico de la pantalla de los sistemas informáticos se mide por el número de 304 . 3. El mayor inconveniente de este tipo de pantallas de computadora era que debían ser monocromas porque no podían manejar color. 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 .discos se puede sobre escribir cerca de 1000 veces. Los sistemas informáticos portátiles suelen tener tamaño de entre 9 y 14 pulgadas. Pantallas de computadoras de rayos catódicos: Este tipo de pantallas de computadora son similares a las pantallas del televisor. etc. Las pantallas de computadora de rayos catódicos pueden ser monocromas ( de un solo color. blanco o ámbar) o policromas. 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. por ejemplo 21 pulgadas para sistemas informáticos de autoedición. Las pantallas de los monitores muestran una imagen del resultado de la información procesada por la computadora. Los colores que pueden aparecer en la pantalla de un sistema informático están determinados por la paleta de colores. 2. 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. Pantallas de computadora de plasma: Son el tipo de pantallas que se están imponiendo actualmente en los sistemas informáticos portátiles. La imagen formada en la pantalla de la computadora tiene una unidad elemental llamada pixel. alcanzando una mayor definición y la posibilidad del color. 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. 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. En la actualidad. 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. aunque algunas pantallas de computadora pueden mostrar hasta 256 caracteres por el modo extendido de dicho código. 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.000 colores de la SVGA. 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. normalmente verde. puesto que tiene las misma ventajas que las anteriores. Las paletas oscilan entre los cuatro colores básicos de la CGA y 256. 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. El tamaño de la pantalla de computadora más habituales entre los actuales sistemas microinformáticos suelen ser el de 14 pulgadas.

• Impresoras sin cinta entintada. 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. Dependiendo de su tecnología de construcción. Para que una impresora pueda funcionar correctamente debe estar en posición ONLINE. en estos controles internos de la impresora. . 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. Un pequeño punzón golpea contra la cápsula y así al martillar el tipo se imprime el carácter deseado. . 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 .Impresoras de bolas. Impresora de Bola: 305 .Impresoras de agujas. que se encuentre en líneas con la computadora a la espera de recibir datos que el usuario a solicitado imprimir . prácticamente todas las tarjetas controladoras de los subsistemas de vídeo de las computadoras trabajan en modo gráfico.Impresoras de margaritas .Impresoras de inyección de tintas . y sus principales inconvenientes son su lentitud y el ruido que causa al golear sobre la cinta para conseguir la impresión. Su mecanismo se compone de una rueda alrededor de la cual están colocados los caracteres alfanuméricos que se pueden imprimir .P. las impresoras pueden dividirse en: • Impresoras con cinta entintada. .U. 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. La impresión se hace cuando una cápsula que tiene un relieve del tipo a imprimir se encuentra enfrentada al papel. . 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. El tamaño más expendido es el de 24 o 25 líneas y 80 columnas.Impresoras térmicas .Impresoras láser. .filas y el de columnas de caracteres que pueden representar en la pantalla de la computadora. Es evidente la mayor potencia del medio gráfico que el modo de texto. lo que quiere decir. Sus principales ventajas son el bajo costo y la facilidad de construcción. por ello. Modo Gráfico : La pantalla del sistema informático se divide en una serie de punto de información que aparece en su superficie. El número de punto puede llegar los 1280 puntos por 1024 filas en las tarjetas gráficas SVGA. en la actualidad. 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 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.Impresoras láser color.

Esta tinta es la que finalmente forman los caracteres. debido a que aquí se deben gestionar tres colores de tinta diferentes. Esta tecnología ha ido retirándose poco a poco del mercado debido a que el paso del tiempo. Impresoras Láser de color: El funcionamiento de las impresoras láser de color es similar alas impresoras láser en blanco y negro. quedando los caracteres trazados eléctricamente sobre el tambor . la luz y. 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.Son similares alas impresoras de margaritas pero de mejor calidad. sobre todo. obteniendo entre 300 y 600 puntos por pulgada. La disminución de los preciso de este tipo de impresoras han determinado su amplia difusión en el mercado. 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 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. 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. 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. 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 . estas impresoras son mucho más silenciosas. 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. 306 . el calor afectaban mucho al papel termo sensible. Impresoras térmicas: El método es similar a las aguja. Un disco de espejo desvía al rayo barriendo repetidamente el tambor fotoconductor. Impresoras de inyección de tinta: Las impresoras de inyección de tinta. 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. en lugar de utilizar un papel normal. cada una de ellas tiene la posibilidad de un cierto movimiento horizontal. deteriorándose con el tiempo. 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. La velocidad de impresión es algo más lenta que en las impresoras láser de tinta negra. van generando loS caracteres. Al no producir un impacto para realizar la impresión del carácter. también llamada chorro de tinta. Con esta capacidad se puede generar matrices de 7 por 5 o 9 por 7 puntos con los que se forman los diferentes caracteres. 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. Aunque en la actualidad es comúnmente utilizada por los equipos de fax. Permiten su uso en lugares de trabajos sin equipos especiales de protección acústicas. pero se diferencian en que.

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

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. Sistema operativo. Además. Servicio Técnico. 308 . 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. y elegir para nuestra conveniencia y alcance los demás periféricos. 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. 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.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. Capacidad de la RAM. Hubo que investigar en distintos libros y revistas y así ir determinando lo que cada integrante debía realizar para lograr un buen fin.

CONCLUSIÓN 309 .

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

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

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

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

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

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

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

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

INTRODUCCIÓN 318 .

y para una mayor simplicidad. consideremos de ahora en adelante una configuración estándar para todos los periféricos. La característica de las fichas es representar los datos carácter a carácter. generalmente.). Las filas están numeradas físicamente de 0 a 9. • Una máquina selectora para ordenar las fichas en base a campos determinados. Además. en la memoria del ordenador también existe un buffer de I/O (en general. dependiendo del tipo de periférico. El segundo es un registro de tránsito. El primero. refiriéndonos a un sistema de microprocesadores. de dimensiones variables. de dimensiones distintas con respecto al del periférico en cuestión) que contiene los datos a transmitir. La ficha esta dividida en 80 columnas y 12 filas. para las operaciones de I/O. Las cifras se representan con una perforación en la fila correspondiente. un registro de estado y un buffer de I/O. 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. ya que se prefiere. etc.APUNTES DE CATEDRA CARRERA: Cátedra: Profesor: AÑO: LICENCIATURA EN ANALISIS DE SISTEMAS – INGENIERIA EN SISTEMAS Procesamiento De Datos I Lic. que prevea para cada uno de ellos. Puesto que en el anterior. Estas técnicas. las letras del alfabeto se 319 . en sustancia. desde que las posibilidades del ordenador lo permiten. 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. 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. Realmente esta máquina casi no se utiliza. por el que pasan todos los datos de salida y de entrada. son las mismas que las utilizadas en los sistemas de grandes y medianos ordenadores. • Una máquina verificadora para controlar que las perforaciones de las fichas sean exactas. Por consiguiente. 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. Se trata de una pequeña cartulina rectangular con una discreta resistencia y un buen aislamiento eléctrico. Antes de hablar de estos dispositivos veamos en qué consiste una ficha. Aprenderemos las principales técnicas utilizadas en un sistema de ordenador para la gestión de periféricos de entrada/salida (I/O). existiendo también dos filas superiores a la fila 0 (la 11 y la 12). ya examinamos las principales características de los dispositivos de I/O (Input/Output = entrada/salida) en soporte magnético. buffer ocupado. por lo menos. no los trataremos en éste. hablando de las memorias masivas.

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

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

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

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

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

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

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

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

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

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

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

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

Existen diferentes tipos de terminales. La diferencia entre los dos grupos depende de la manera en la que se visualizan los datos introducidos por el teclado. número u otros) bajo la forma de tabla de bytes. Para facilitar la gestión de la pantalla se utiliza un indicador luminoso (generalmente intermitente). El microprocesador. pero siempre con el debido cuidado y habilidad. una para cada carácter. La posición viene determinada durante el continuo barrido de la pantalla por medio del rayo luminoso. que sirve para indicar una posición de la pantalla. Se recomienda la utilización del lápiz particularmente en operaciones de selección. que en todo momento se encuentra en la posición actualmente disponible y que puede ser movido utilizando las teclas de desplazamiento del cursor. 16. La pantalla puede ser utilizada también como unidad de entrada por medio de un lápiz óptico o lápiz luminoso (light-pen). en la que la pulsación de una tecla provoca un contacto en el cruce de una línea 332 . ya que su posicionamiento tiene efecto inmediato. hablaremos de los terminales de pantalla y de los de escritura.(letra. Fig. la pantalla utiliza la nueva técnica de ventanillas múltiples. Terminal constituido por un teclado alfanumérico y una impresora o una pantalla. utiliza el buffer para obtener una relación de las tablas que representan los distintos caracteres. se puede decir que el buffer contiene los punteros de las imágenes de los caracteres. llamado cursor. que se encarga de la pantalla. 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). por pantalla o sobre el papel. 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. Podemos imaginar un teclado de n x m teclas como una matriz de n líneas por m columnas. Por lo tanto.

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

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

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

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

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

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

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

Registro o conjunto de registros de un periférico en el que transitan los datos de entrada y salida. 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. Dispositivo de salida que proporciona los resultados de los Impresora procesos. Se utiliza para transferencias rápidas de Memory grandes cantidades de datos entre un periférico y la Accessmemoria central. que utiliza procesos químicos. en la que no existe el contacto entre impacto el papel y el dispositivo de impresión. por medio de adecuadas combinaciones de perforaciones. los caracteres de una línea. de manera inteligible por el hombre. uno tras otro. Técnica de impresión. impresos sobre hojas de papel. No necesita el control de la CPU. en la posición disponible de la pantalla. Indicador luminoso intermitente que se encuentra. es el conjunto de programas que gestionan tales dispositivos. con referencia al software. 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. Técnica hardware de I/O. Impresoras en Imprimen simultáneamente (o casi) todos los caracteres de paralelo una línea en diferentes posiciones. es el conjunto de dispositivos que permiten la conexión entre ellos de dos o Interfase más componentes de un sistema. En los problemas relativos a la identificación del periférico que demanda tareas y en la definición de prioridad Banda perforada 340 . Cada carácter se puede perforada identificar a través de una determinada configuración de perforaciones en posiciones adecuadas. Impresión sin magnéticos o eléctricos. a cada Cursor instante. serie Desde el punto de vista de hardware. 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. carácter a carácter. 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.GLOSARIO Soporte de papel en forma de cinta en la que se representan los datos. 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. gestionada por un dispositivo DMA (Direct denominado DMA.

El servicio de las demandas tiene carácter software y se realiza por medio de rutinas denominadas de «servicio». Registro interno de un dispositivo (unidad central o periférico) que proporciona. Dispositivo de salida conectado al ordenador. Dispositivo de entrada por medio del cual se introducen en el ordenador los programas y los datos sobre fichas perforadas. realiza la impresión de gráficos y dibujos. Técnica software de I/O. disponibilidad de un dato. Por ej. 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. etc. 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. 341 . Dispositivo de salida que. estado la petición de un dato. aprovechando el desplazamiento Plotter vertical de la hoja de papel y el desplazamiento horizontal de una pluma. por medio del estado de sus Registro de bits. La transferencia se realiza sólo de tráfico) si el periférico que lo demanda es interrogado por el programa. la información acerca del estado del dispositivo. el buffer de I/O ocupado. es necesario hardware adicional. Es una palanca direccional que puede moverse manualmente para dirigir el movimiento de un punto en la pantalla.para peticiones simultáneas. 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. Los resultados de los procesos se obtienen bajo forma de fichas perforadas. 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. con referencia tanto al I/O aspecto hardware como al software.

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 .ar BIBLIOGRAFIA CARRERA: LICENCIATURA EN ANALISIS DE SISTEMAS – INGENIERIA EN SISTEMAS Cátedra: Procesamiento De Datos I Profesor: Lic.C. Marcelo Martinez AÑO: 2003 Básica Introducción a la Informática LL Guillera Aguera EDUNSA Operación Programación de Computadoras M.estudio3. Ginzburg Bibioteca Técnica Superior Sistemas de Micro computación Ivan Flores El Atenero Organización de Computadoras Andrew S. 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.BIBLIOGRAFÍA UNLaR .com. Ginzburg La PC por Dentro M.Procesamiento de Datos I – Ciclo 2003 Pagina 1 http://unlar. Tanenmaum Prentice may Principios de Procesamiento de Datos Gordon B. Tanenmaum Prentice Hall Sistemas Operativos Modernos Andrew S.C.

Sign up to vote on this title
UsefulNot useful