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

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

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

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

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

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

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

INTRODUCCIÓN 12 .

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

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

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

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

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

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

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

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

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

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

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

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

CONCLUSIÓN 25 .

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

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

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

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

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

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

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

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

39 .

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

CONCLUSIÓN 79 .

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

120 .

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

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

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

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

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

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

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

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

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

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

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

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

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

CONCLUSIÓN 134 .

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

CONCLUSIÓN 187 .

BOLILLA III: ARQUITECTURA DEL PROCESADOR 188 .

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

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

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

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

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

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

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

INTRODUCCIÓN 196 .

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

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

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

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

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

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

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

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

Este es el caso de la computadora conocida como "Abacus". 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. R2 de la figura anterior. donde el acumulador sustituye a los registros R1. 205 . El segundo operando puede almacenarse durante la operación en el “Registro de Palabra” asociado a la memoria.

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

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

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

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

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

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

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

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

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

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

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

............................................................311 INTRODUCCIÓN....................................................................335 Polling (interrogatorio de tráfico) ........342 CONCLUSIÓN FINAL..................338 Transferencia DMA ..................................................................................................................................................................................................................344 222 ........................................................................................................................................................................................................................................................................................................323 Impresoras........................................................................................................334 Técnicas de entrada/salida (input/output).............................323 Plotter...............................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..................................................................319 Dispositivos de fichas y de banda perforada....343 BIBLIOGRAFÍA .............................................................................340 CONCLUSIÓN............................................................................................................................319 Dispositivos de soporte magnético.....................331 Terminales..........................................................................................................................310 INDICE.............................................................................................339 GLOSARIO......336 Interrupciones (interrupts) ..........................................BOLILLA VI (PARTE 2): TÉCNICAS Y DISPOSITIVOS DE ENTRADA SALIDA..............................................................................................................................................................................................................................................................330 La pantalla.............

INTRODUCCIÓN 223 .

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

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

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

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

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

Formas de acceder a las posiciones de memoria La acción de introducir información (escribir ó grabar) en una posición de memoria. se realiza actualmente en sistemas físicos que poseen partes en movimiento y reciben el nombre genérico de periféricos. nunca es necesario leer o escribir simultáneamente todas las posiciones de una memoria. se denomina "acceso a la memoria". En esta clasificación se incluyen solamente las memorias que no poseen partes en movimiento y que en general se encuentran en el mismo recinto físico que la Unidad de Control y la Unidad Aritmética y Lógica. Tal como se dijo. o leer la que contiene. 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. 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. Por lo tanto el tiempo de acceso a cualquier posición de la memoria es el mismo 229 . El almacenamiento de información en cantidades elevadas (cientos de miles de "k" palabras). En esta figura se representa una visión panorámica de los diversos tipos de memorias y la interrelación que existe entre ellas. Aleatoriamente se puede seleccionar cualquier posición de la memoria para introducir información o leer la que contiene.

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

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

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

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

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

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

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

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

b. sino que se suministra la información ala memoria para observar si ésta la contiene en alguna de sus posiciones.El alumno puede deducir que en una operación de escritura.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. 238 .Toda la información contenida en cada posición de la memoria se compara con la información de entrada: La memoria da solamente como respuesta en general un bit cuyo estado indica si existe alguna información en el interior de la memoria que es idéntica a la presentada a la entrada. El otro campo es el que da como respuesta la memoria cuando existe coincidencia entre el campo de comparación y la información de entrada. 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. La información almacenada en cada posición de una memoria asociativa puede estar organizada de dos formas fundamentales: a.

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

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

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

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

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

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

CONCLUSIÓN 245 .

BOLILLA V: EL NIVEL DEL LENGUAJE ENSAMBLADOR 246 .

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

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

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

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

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

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

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

INTRODUCCIÓN 254 .

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

273 .necesario retraducir los procedimientos modificados y no habrá que tocar los demás. 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. El enlace es generalmente mucho más rápido que la traducción.

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

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

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

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

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

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

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

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

CONCLUSIÓN 282 .

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

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

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

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

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

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

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

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

INTRODUCCIÓN 291 .

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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. Capacidad de la RAM. 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. 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. 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. Servicio Técnico.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. Además. Sistema operativo. 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 .

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

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

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

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

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

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

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

INTRODUCCIÓN 318 .

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

CONCLUSIÓN 342 .

CONCLUSIÓN FINAL 343 .

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

Sign up to vote on this title
UsefulNot useful