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

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

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

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

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

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

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

INTRODUCCIÓN 12 .

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

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

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

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

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

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

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

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

Matríz de Conexiones Dinámicas: cualquier canal puede atender a cualquier periférico que están conectados a todos los canales. tiene la posibilidad de hacer un ensamblado o desensamblado de datos. ya que cambiaria la dimensión. • UN REGISTRO DE DIRECCIONES DE MEMORIA: apunta a la memoria. Reparte su tiempo entre los periféricos que están conectados a él. 2. 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.TECNOLOGÍA DE CANALES: 1. pero de a uno por vez. De conexión en serie: con procesador de E/S puede atender a varios periféricos. 21 . que la matriz de conexión dinámica. 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. 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. 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. aunque los otros procesadores de E/S estén libres. 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.

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

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

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

CONCLUSIÓN 25 .

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

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

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

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

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

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

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

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

39 .

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Pero ahora la línea CS • RD está en bajo. es decir. Por esta razón. En cambio. incluso en escritura. En particular. Por tanto. 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. pero en las memorias reales son las mismas. Si se hubieran conectado las compuertas OR a las líneas de salida. por lo que se deshabilitan todas las compuertas de escritura y no se modifica ningún biestable. una palabra pasa sus datos a las compuertas OR de cuatro entradas de la parte inferior de la figura. la salida de las compuertas OR es idéntica al valor guardado en la palabra seleccionada. mientras que a las otras tres palabras les pasan ceros. a veces eso causa problemas. forzar cada línea a un valor especifico. la línea de selección de palabra elegida habilita las compuertas AND conectadas a las salidas Q de la palabra seleccionada. La decodificación de direcciones es idéntica. Las tres palabras no seleccionadas no contribuyen a la salida. 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. 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. la pastilla intentaría sacar datos. En consecuencia.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

CONCLUSIÓN 79 .

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

120 .

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

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

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

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

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

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

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

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

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

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

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

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

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

CONCLUSIÓN 134 .

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

CONCLUSIÓN 187 .

BOLILLA III: ARQUITECTURA DEL PROCESADOR 188 .

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

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

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

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

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

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

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

INTRODUCCIÓN 196 .

en la pared hay un reloj donde se le indica el tiempo que tiene para resolver cada instrucción. memorias y dispositivos de entrada / salida interconectados. Veremos aquí estos componentes y su interconexión. Por otro lado. también tiene a cada lado un canasto. Esto se puede apreciar en la siguiente figura (Figura 1). 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. 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. Procesadores. requerimientos ó instrucciones y el de su izquierda es donde el entrega datos o respuestas a los requerimientos. Además. 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. 197 . DESCRIPCIÓN DE LOS COMPONENTES DE UN PROCESADOR En una visión muy general un ordenador lo podemos asimilar a la siguiente situación. el de su derecha es donde se le introducen datos.APUNTES DE CATEDRA CARRERA: Cátedra: Profesor: AÑO: LICENCIATURA EN ANALISIS DE SISTEMAS – INGENIERIA EN SISTEMAS Procesamiento De Datos I Lic. Marcelo Martinez 2003 ARQUITECTURA DEL PROCESADOR ESTRUCTURA GENERAL Una computadora digital es un sistema de procesadores.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

INTRODUCCIÓN 223 .

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

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

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

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

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

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. tanto de datos como de instrucciones de los sistemas programables. 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. nunca es necesario leer o escribir simultáneamente todas las posiciones de una memoria. se denomina "acceso a la memoria". Por ello existen varias formas de acceso a una posición de memoria. lo que da lugar a la división de las memorias indicadas en la figura 3.Formas de acceder a las posiciones de memoria La acción de introducir información (escribir ó grabar) en una posición de memoria. Aleatoriamente se puede seleccionar cualquier posición de la memoria para introducir información o leer la que contiene. Tal como se dijo. o leer la que contiene. se realiza actualmente en sistemas físicos que poseen partes en movimiento y reciben el nombre genérico de periféricos. En esta figura se representa una visión panorámica de los diversos tipos de memorias y la interrelación que existe entre ellas. 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 .

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

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

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

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

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

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

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

3.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 . En la figura 10 se indica gráficamente la forma en que se realiza la escritura y la lectura de una memoria LIFO.

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

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

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

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

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

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

CONCLUSIÓN 245 .

BOLILLA V: EL NIVEL DEL LENGUAJE ENSAMBLADOR 246 .

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

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

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

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

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

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

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

INTRODUCCIÓN 254 .

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

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

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

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

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

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

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

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

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

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

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

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

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

mente igual a n. La codificación por transformación de los símbolos se ilustra en la figura 7-8. 268 .una distribución uniforme de los valores de salida. Con n/k símbolos y k elementos en la tabla. Todos los pares (símbolo. los símbolos se encontrarán con frecuencia en el primer elemento de la lista correspondiente.1. 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. la media de las longitudes de las listas será n. Eligiendo k aproximada. 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.

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

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

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

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

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

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

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

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

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

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

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

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

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

CONCLUSIÓN 282 .

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

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

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

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

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

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

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

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

INTRODUCCIÓN 291 .

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Además. 308 . Hubo que investigar en distintos libros y revistas y así ir determinando lo que cada integrante debía realizar para lograr un buen fin. Capacidad de la RAM. Servicio Técnico. Sistema operativo. También nos ha dejado como enseñanza que en el momento de adquirir un equipo debe tenerse en cuenta distintos aspectos como ser: Velocidad. A merced de esto el trabajo grupal ayuda a establecer pautas que se deberán seguir a medida que se progresa en la investigación.un módem hay que asegurarse de que este pueda ser actualizado (preferiblemente mediante un programa software gratuito) para hacerlo compatible con el estándar 56K definitivo. 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. 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.

CONCLUSIÓN 309 .

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

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

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

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

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

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

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

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

INTRODUCCIÓN 318 .

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

CONCLUSIÓN 342 .

CONCLUSIÓN FINAL 343 .

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