Capítulo 3: Estructura funcional de las computadoras. Página 1. OBJETIVOS. En este capítulo se efectúa una introducción a la estructura de computadoras. Se hace especial hincapié en los elementos internos de un procesador, se describe la composición y funcionamiento de las unidades centrales de una computadora: unidad aritmético – lógica, unidad de control, memoria y configuración de entrada/salida. También se describe el bus, medio por el que se interconectan los distintos elementos de una computadora. En el Capítulo 1 ya se describieron brevemente las distintas unidades funcionales de una computadora, que son: Procesador central (CPU), formado por Unidad de control (UC), Unidad aritmético lógica (ALU), también llamada unidad de procesamiento. Memoria central o principal(M) Periféricos, de los siguientes tipos: Memoria masiva (MM) Unidades de entrada (E) Unidades de salida (S) 1.- UNIDAD ARITMÉTICO LÓGICA (UAL). El conjunto de elementos de una CPU no dedicados al control se suele denominar, según los autores, unidad aritmético-lógica o unidad de procesamiento o unidad de tratamiento. Usualmente el término unidad aritmético lógica se reserva para los circuitos específicos que realizan este tipo de operaciones. Aquí se prefiere utilizar el término unidad de procesamiento, e incluye la unidad aritmético lógica propiamente dicha, acumulador, registros auxiliares (para resultados intermedios o direcciones), multiplexores, etc. Es la unidad de cálculo o procesamiento de la computadora. Se encarga de realizar las operaciones aritméticas, lógicas y de otro tipo necesarias para la ejecución de los programas. Usualmente en la ALU se realizan operaciones muy sencillas como rotaciones y desplazamientos de uno o varios bits a la vez del acumulador (y posiblemente de algún otro registro interno), comparaciones, sumas, restas, multiplicaciones y divisiones. Figura 1.- Esquema funcional de una unidad de procesamiento. Los elementos básicos que la unidad de procesamiento constituyen son: Unidad aritmético – lógica. Se encarga de realizar las operaciones con los datos. Registros de Entrada. Son varios registros que almacenan los operandos de entrada. Registro Acumulador. Sirve de almacenamiento de los resultados de las operaciones de la unidad aritmético lógica. Registro de Estado. Gracias a él, las computadoras poseen capacidad de "decisión inteligente". Capítulo 3: Estructura funcional de las computadoras. Página 2. 2.- UNIDAD DE CONTROL. Según se vio en el Capítulo 1 el objetivo de la unidad de control es monitorizar el funcionamiento de toda la computadora dirigiendo la información a las unidades o elementos precisos en el momento adecuado y dando las órdenes oportunas para que se realicen las acciones pertinentes (memorizar, sumar, etc.). En definitiva, podemos decir que la unidad de control capta las instrucciones, las interpreta, capta los operandos y los lleva a circuitos adecuados de la unidad de procesamiento, envía las señales oportunas a la ALU para completar las operaciones implicadas en la instrucción y los resultados se almacenan en el destino correspondiente. Sus partes fundamentales son: Registro de Instrucción (RI). Almacena la instrucción en curso que procede de memoria principal Registro Contador de Programa (CP). Contiene la dirección de la siguiente instrucción a ejecutar. Al finalizar la ejecución de una instrucción, se coloca en él la posición de memoria donde se encuentra la siguiente instrucción a ejecutar. Registro de Direcciones de Memoria (RDIM). Almacena las direcciones en las que se van a escribir o de las que se van a leer datos. Su contenido siempre está presente en el bus de direcciones externo sin una orden explícita. Registro de Datos de Memoria (RDAM). Almacena temporalmente los datos que se intercambien con la memoria en las operaciones de lectura y de escritura. Decodificador. Es un circuito combinacional que usando como entrada el contador de programa activa un conjunto de salidas conectadas directamente como entradas al controlador. Controlador o Secuenciador. Es el verdadero "centro de operaciones" de la computadora. Tiene las siguientes entradas: Salidas del decodificador Reloj del Sistema. Registro de estado. Para gobernar las instrucciones de salto condicional. Es quién se encarga de dirigir todas las operaciones y gobernar el funcionamiento de la computadora. Su función básica es ejecutar la siguiente secuencia: Tomar de memoria principal la instrucción apuntada por el contador de programa, e incrementarlo adecuadamente. Interpretar o decodificar la instrucción leída. Ejecutar la instrucción. La unidad de control realiza las funciones descritas generando señales de control (o microórdenes) que producen determinadas microoperaciones en un orden predeterminado, de forma sincronizada con un temporizador. Se pueden utilizar dos metodologías para diseñar la unidad de control. La primera de ellas se denomina de lógica cableada y se basa en la utilización de puertas lógicas. La segunda se denomina microprogramación y se basa en almacenar en una memoria, por lo general de sólo lectura (memoria de control), las microórdenes que producen las microoperaciones que implementan las distintas instrucciones: la ejecución de una instrucción sencillamente implica leer de la memoria de control las microórdenes correspondientes a ella. Capítulo 3: Estructura funcional de las computadoras. Página 3. 3.- MEMORIA. Según se indicó en el Capítulo 1 la memoria es una unidad donde se almacena la información que necesita la computadora, es decir, tanto las instrucciones que forman los programas, como los datos. Aquí se hablara principalmente de la memoria principal. En esta memoria para seleccionar una palabra debe especificarse su dirección; se dice que son memorias accesibles por dirección. A veces también se usan memorias accesibles por contenido o asociativas, donde en lugar de una dirección, se da una parte del contenido de la posición, clave, y la memoria proporciona la totalidad del contenido de las palabras que contienen dicha clave. Aquí nos referiremos a las memorias accesibles por dirección. Un parámetro de gran importancia es la velocidad de respuesta. Usualmente se utilizan tres parámetros relacionados con la velocidad. Tiempo de acceso, tA, es el tiempo máximo que se tarda en leer (tiempo de acceso de lectura) o escribir (tiempo de acceso de escritura) el contenido de una posición de memoria. Tiempo de ciclo, tC, es el tiempo mínimo entre dos lecturas sucesivas. Ancho de banda, AB, es el número de palabras que se transfieren entre memoria y la CPU por unidad de tiempo: AB = 1 / tc. Según se indicó en el Capítulo 1, la memoria principal de una computadora suele estar constituida por dos tipos de memoria: ROM y RAM. En esta sección vamos a centramos en cuestiones relativas a las memorias RAM, aunque la mayoría de las ideas se pueden particularizar para memorias ROM. En la actualidad, las memorias RAM se estructuran con circuitos integrados (chips), existiendo dos tipos básicos de circuitos: RAM estáticos (o SRAM) y RAM dinámicos (o DRAM); los primeros son más rápidos, pero su grado de integración es menor (se necesitan por cada bit más transistores); los segundos no son tan rápidos pero su densidad de integración es mucho mayor. Figura 2.- Esquema funcional de la memoria. En la Figura 2 se muestra un esquema simplificado del interior una memoria. Se observa que hay unas líneas para entrada de datos, otras líneas de entrada de dirección. Los elementos de memoria o celdas (bits) suelen organizarse en matrices rectangulares, al objeto de conseguir grandes densidades de integración. Hay tres señales de control para distinguir entre lectura y escritura: OE (o MR), que debe ser 1 cuando se desea leer, WE (o MW), que debe ser 1 cuando se desea escribir y CS (o CE) (selección del circuito) que debe ser 1 si queremos que el chip actúe. Las líneas de salida (DO) quedan eléctricamente conectadas al bus de salida si CE = 1 y OE = 1 (los conmutadores de salida estarían cerrados). Capítulo 3: Estructura funcional de las computadoras. Página 4. 3.1.- Jerarquía de memoria. La CPU capta las instrucciones y datos de la memoria principal, almacenando en ella los resultados de las operaciones, por tanto, es conveniente que las velocidades de funcionamiento de ambas unidades sean del mismo orden de magnitud; sin embargo, esto no suele ser así. El problema anterior se palia en parte utilizando una memoria más veloz constituyendo una memoria caché. La memoria oculta o caché es una pequeña memoria rápida que se coloca entre la memoria principal y el procesador, de forma tal que éste se comunica directamente con ella y no con la memoria principal. La memoria caché suele estar constituida por circuitos integrados CMOS estáticos ECL que son más rápidos, aproximadamente 4 o 5 veces, que los CMOS – dinámicos que forman la memoria principal; pero, como son más caros, voluminosos y de mayor consumo energético, la capacidad de ellos que se suele incluir en una computadora es de unas 1.000 a 100 veces menor. Ya se comentó que, para ejecutarse, todo programa debe ser cargado en memoria principal. Para permitir la ejecución de programas mayores que el tamaño de la memoria disponible se ha desarrollado la técnica de memoria virtual con la que el programa y sus datos se mantienen en disco, y sólo la parte de ellos implicada en la ejecución se mantiene en la memoria principal. Las prestaciones de una computadora vienen en gran parte determinadas por la de su memoria. La memoria ha de cubrir cuatro objetivos básicos a) tamaño o capacidad s de almacenamiento suficiente b) tiempo de acceso, t, el menor posible, c) ancho de banda alto b, y d) coste por bit reducido. Desafortunadamente no existe una tecnología concreta que reúna simultáneamente las cuatro características indicadas Debido a ello se han desarrollado múltiples sistemas de almacenamiento auxiliar de la memoria principal, en la Tabla 1 se incluye un resumen de las características de los principales dispositivos de memoria. < 1 Kb Tiempo de acceso 3 a 100 ns Ancho de banda Mb/sg 400 a 800 Caché (SRAM) 32 Kb a 4 Mb 10 a 40 ns 200 a 400 2 Memoria principal (DRAM) 1 Mb a 30 a 100 ns 100 a 200 3 Discos Winchester 100 Mb 200 Gb 8 a 18 ms 1a5 4 Discos ópticos CD-ROM 680 Mb 0,1 a 0,3 s 0,6 5 Discos magnetópticos (WMRA) 0,5 a 1 Gb 0,03 s 0,15 6 Discos ópticos WORM 650 Mb 0,1 a 0,3 s 0,15 7 Cintas magnéticas (DAT) 2,56 Mb 60 s 0,207 8 Disquettes 1,44 Mb 100 ms 0,05 Nivel Dispositivo Capacidad 0 Registros CPU 1 Tabla 1.- Características de distintos dispositivos de memoria. En el nivel superior se encuentran los registros internos de la unidad procesamiento, y en el nivel inferior las cintas magnéticas. Puede observarse (véase Figura 3), que cuanto más alto es el nivel, menor es su capacidad pero la velocidad es mayor; en concreto, se verifica: Si<Si+1; ti<ti+1; bi>bi+1; Ci>Ci+1 Capítulo 3: Estructura funcional de las computadoras. Página 5. La CPU es el elemento principal de la computadora, ya que desde la misma se controla su funcionamiento completo y en él se hace el procesamiento de datos. Interesa que los datos con los que en un momento dado va a operar la CPU estén en el nivel más alto de la jerarquía, ya que si no habrá que disponer de procedimientos (gestionados por el sistema operativo), para buscarlos en niveles inferiores, estas búsquedas (por fallo en los accesos) provocan una disminución del rendimiento de la computadora. Por lo general, toda información de un nivel se encuentra también almacenada en el nivel Figura 3.- Jerarquía de la memoria. inmediato inferior, y así sucesivamente. Existen estrategias para determinar qué información en un momento dado debe ubicarse en cada uno de los niveles superiores, de forma que se produzca el menor número de fallos en los accesos a datos en un determinado nivel. Así, si se está ejecutando un determinado programa o utilizando un grupo de datos es muy probable que si se referencia a un elemento, los elementos cercanos a él tiendan a ser referenciados pronto (principio denominado de localidad espacial). También, debido a que los bucles son muy frecuentes en programación, si se referencia un elemento, tenderá a ser nuevamente referenciado pronto (principio de localidad temporal). Estos dos principios han inspirado distintos procedimientos para gestionar la memoria caché y la memoria virtual. 4.- EL BUS DEL SISTEMA. Las unidades funcionales de una computadora se interconectan de acuerdo con una determinada organización. Hay diferentes organizaciones, y a continuación se describen las más relevantes. La interconexión entre los distintos elementos de la computadora se realiza mediante hilos conductores en paralelo que transmiten simultáneamente información (por ejemplo, una palabra de datos). De esta forma se consigue una velocidad razonable de funcionamiento. Un conjunto de cables que transmite información en paralelo se denomina bus. El bus que interconecta las distintas unidades funcionales se compone, en realidad, de tres elementos: bus de datos, bus de direcciones y bus de control. Figura 4. Organizaciones sencillas de computadora: a) con un bus específico para conexión CPU memoria; b) estructura de bus único. Capítulo 3: Estructura funcional de las computadoras. Página 6. El bus de datos transporta los datos que se transfieren entre las unidades, y su número de hilos determina la longitud de palabra de la computadora; es decir, si una computadora contiene un bus de datos de 16 hilos para transmitir simultáneamente datos de 16 bits, se dice que está organizado en palabras de 16 bits. El bus de datos suele ser bidireccional; esto es, los mismos hilos se utilizan para transmitir información hacia adentro o hacia afuera de una unidad (la CPU, por ejemplo ), en instantes diferentes. El bus de direcciones transporta la dirección de la posición de memoria o del puerto periférico que interviene en el tráfico de información (de dónde procede o a dónde va el dato). El bus de control contiene hilos que transportan las señales de control y las señales de estado, indicando la dirección de la transferencia de datos, coordinando la temporización de eventos durante la transferencia, transmitiendo las señales de interrupción, etc. Las formas más sencillas de conectar unidades son las que se muestran en la Figura 4. La primera forma (Figura 4.a) dispone de un bus específico de interconexión CPU-Memoria. Obsérvese que todo el tráfico de información entre periféricos y memoria, necesariamente ha de hacerse a través de la CPU. La segunda configuración (Figura 4.b) es más sencilla, y utiliza un único bus. Todas las unidades se conectan a él, a este bus se denomina bus del sistema. Como en un instante dado sólo puede transmitirse una información por el bus, sólo una unidad (el procesador) puede tener el control del bus del sistema. La ventaja principal de esta estructura es su bajo coste y flexibilidad para conectar periféricos. Un problema que se plantea en el funcionamiento global de una computadora es el de las diferentes velocidades operativas de la misma (Tabla 2). La CPU es mucho más rápida que la memoria principal (unas 10 veces), y ésta, a su vez, es muchísimo más rápida que los periféricos (unas 200.000 veces). Con lo cual, como en toda transferencia de información entre dos unidades la unidad más lenta impone la velocidad, el rendimiento global de la computadora sería muy bajo. Como en toda instrucción máquina al menos hay una transferencia entre CPU y memoria, esto hace que la memoria ralentiza considerablemente la velocidad de la CPU. Unidad Tiempo de acceso (ns) CPU 10 Caché Memoria Disco 20 60 a 100 20 x 106 Capacidad < 1 Kb (registros) < 1 Mb < 1 Gb > 1 Gb Ancho de banda (MB/s) 800 200 150 4 Tabla 2.- Datos comparativos entre CPU, caché y memoria principal y disco. Para solucionar este problema se han ideado diversas técnicas, entre ellas están: memoria caché (véase sección 3.1), controladores de E/S y controladores DMA. Un controlador (canal o procesador) de entrada/salida (o de periféricos) es un procesador especializado en controlar las operaciones de transferencia de datos entre los periféricos conectados a él, y entre éstos y la CPU. Estas operaciones de control normalmente son función de la CPU, por la que los controladores de E/S descargan a ésta de las mismas. No obstante, siempre es la CPU quien inicializa y cede el control al controlador. Una vez que un controlador de E/S finaliza la operación encomendada por la CPU, envía a ésta una señal de interrupción indicando que está listo para realizar otra operación. Cada controlador de E/S monitoriza la actuación de distintos periféricos (Figura 5.a) y su conexión con el bus del sistema suele denominarse canal de entrada/salida o sencillamente canal. Capítulo 3: Estructura funcional de las computadoras. Página 7. La Figura 5.a muestra una estructura con un bus único que incluye controladores de E/S y memoria caché. Esta estructura (como la de la Figura 4.b) tiene el problema de que una orden de transferencia de datos entre periféricos de dos canales distintos puede interferir con, por ejemplo, en la captación de una instrucción de la memoria principal por la CPU. Para evitar este problema usualmente se utiliza una estructura con dos bus, tal como la que se muestra en la Figura 4.b, en ella aparece un bus específico de Figura 5.- Organizaciones con controladores de E/S: entrada/salida. a) bus único b) bus específico de E/S. Los controladores de E/S evitan que la CPU tenga que adaptarse entre operaciones de E/S individuales a la velocidad y ritmo que marca el periférico con el que se hace la transferencia. No obstante, la CPU sigue siendo responsable de todas las operaciones individuales de E/S. Las operaciones de E/S que realizan los usuarios, normalmente se hacen entre memoria principal y un periférico, y viceversa; como ocurre, por ejemplo, en la carga en memoria de un programa para ejecutarlo, o al salvar un documento generado con ayuda de un procesador de textos. Pero, como el control del bus principal del sistema la lleva la CPU, y las instrucciones de E/S de los lenguajes máquina comúnmente realizan estas operaciones entre el periférico y un registro general (usualmente el acumulador) del procesador, en cada operación elemental de E/S debe intervenir la CPU. Por ejemplo, la transferencia de un bloque de memoria de 1.024 palabras de disco a memoria, necesitará un mínimo de 1.024 cargas en la CPU y 1.024 almacenamientos en memoria. Para descargar de este trabajo a la CPU se han diseñado los controladores DMA (Direct Memory Access) (Figura 6). El controlador DMA es un procesador especializado para transferir datos entre memoria y un periférico o viceversa, mientras la CPU puede realizar otras tareas. El controlador DMA es externo a la CPU y actúa, de forma combinada con la CPU, como controlador del bus. Figura 6.- Estructura de computadora con DMA y canal específico de E/S. Capítulo 3: Estructura funcional de las computadoras. Página 8. 5.- ENTRADAS/SALIDA. Hasta ahora hemos hecho hincapié en el estudio de la CPU y la memoria principal. En esta sección, dedicada a organización de entradas/salidas, se van a analizar los problemas y soluciones que presenta la conexión de la CPU de una computadora con una gran variedad de dispositivos periféricos. El problema de conexión de periféricos a una CPU se debe, principalmente, a que las características de los dispositivos de E/S suelen diferir bastante de las de la CPU; entre otras: La velocidad de transmisión de los periféricos es notablemente menor que la velocidad con que opera la CPU (Tabla 1), y además es muy variable. La longitud de las palabras de datos suele variar. Los códigos y niveles eléctricos para representar los datos suelen diferir. Para comprender adecuadamente las funciones de los elementos electrónicos de un periférico conviene distinguir dos niveles en la realización de una entrada/salida: Transferencias elementales de información. Sirven para la recepción o envío de una información individual (byte o palabra). Estas informaciones transmitidas por el bus de datos pueden ser datos propiamente dichos o información de control para el periférico, la CPU o información sobre el estado del propio periférico. Las transferencias elementales de información se realizan físicamente a través de puertos de entrada o salida, que son registros que se conectan directamente a uno del bus de la computadora. Cada puerto tiene asociado una dirección o código, de forma que el lenguaje máquina (la CPU) «ve» a un periférico como si fuese un puerto o conjunto de puertos. Operaciones de entrada/salida. Una operación de entrada consiste en la transferencia de un conjunto de datos (usualmente denominado bloque o registro físico) que constituye una línea del monitor de pantalla, un sector de un disco; o un bloque de una cinta magnética, por ejemplo. Las operaciones de E/S se componen, por tanto, de transferencias elementales que son monitorizadas por la CPU o por circuitos incluidos en el controlador del periférico. 5.1.- Controladores de entrada/salida. Para compatibilizar las características de los dispositivos de E/S con las de la CPU se usan controladores de periféricos (circuitos de interfaz). Cada periférico necesita disponer de su propio controlador, éste, como más adelante se verá, puede ser más o menos complejo. En la Figura 7 puede verse un esquema de un microcomputador que incluye distintos tipos de periféricos con controladores. Figura 7.- Estructura de computadora mostrando la posibilidad de uso de diversos bus y contralodores. Capítulo 3: Estructura funcional de las computadoras. Página 9. Un controlador está constituido por un conjunto de circuitos de adaptación del fomato de señales y características de temporización entre la CPU y 1os dispositivos de E/S. El controlador también se encarga de llevar a cabo las transferencias de datos entre la CPU y el periférico, para ello se conecta entre su periférico y un bus de la computadora (por ejemplo, bus de entrada/salida) y recibe señales de control (a través del bus de control), tales como R/W, IO/M y genera señales de control para el periférico y señales de estado (ocupado/listo, error de paridad, etc .) para la CPU. Los controladores de periféricos se interconectan al bus (local, del sistema o de expansión) a través de los puertos de E/S. Desde la CPU se actúa sobre los periféricos a través de las instrucciones de los programas. Para poder utilizar eficazmente un periférico, su sistema operativo debe contener una rutina especial llamada gestor del periférico para controlar las transferencias de información. El conjunto de gestores de periféricos suele denominarse Sistema de Control de Entrada/Salida o IOCS (Input Output Control System). Sin estas rutinas del sistema operativo seria imposible, o extremadamente complejo, utilizar un periférico desde un lenguaje de alto nivel. Los controladores suelen contener cinco elementos: decodificador de direcciones, puerto de datos, puerto de estado, puerto de control, y secuenciador del controlador, circuitos que generan las secuencias de control interno. Los controladores cubren básicamente los siguientes objetivos: 1. Selección o direccionamiento del periférico. La CPU sitúa en el bus de direcciones el código o dirección del puerto que debe intervenir en el tráfico de datos. En una transmisión concreta, sólo uno de los puertos debe estar conectado eléctricamente al bus de datos. De esta forma se evitan posibles conflictos de acceso al bus. 2. Almacenamiento temporal. La comunicación física entre el periférico y la CPU se hace a través del controlador, por lo que éste contiene un puerto de datos para almacenar temporalmente los datos a transferir. 3. Sincronización. La velocidad operativa de la computadora es mucho mayor que la de los periféricos. El controlador regula el tráfico de información para que no se den problemas de sincronización o de pérdidas de información. 4. Control del periférico. La CPU debe ser capaz de interrogar al controlador, para conocer su estado, leyendo el contenido del puerto de estado, o de enviar órdenes a éste, escribiéndolas en el puerto de control. 5. Conversión de datos. Consiste en la adaptación de las características eléctricas y lógicas de las señales empleadas por el dispositivo de E/S y por el bus: Niveles de tensión, impedancias, etc. Lógica (positiva o negativa). Conversión paralelo/serie y serie/paralelo, etc. 6. Detección de errores, mediante la inclusión/detección de paridad, transformación según códigos polinómicos, etc. En caso de detectarse un error de este tipo, el secuenciador cambiaría el bit del puerto de estado que indica un error de transmisión, así se procedería a repetir la transferencia de información. 7. Gestión de transmisión de bloques de información. En los periféricos que intercambian la información en forma de registros físicos (no con palabras de datos aisladas), el controlador puede disponer de un contador que controle el número de palabras recibidas/transmitidas. Los controladores pueden estar físicamente ubicados en el chasis de la computadora central (por ejemplo, controlador gráfico para monitor de vídeo) o en el dispositivo propiamente dicho (por ejemplo, controlador IDE de disco duro) o distribuidos entre ambos. Capítulo 3: Estructura funcional de las computadoras. Página 10. Las operaciones de entrada/salida son de una gran complejidad. En las primeras computadoras la CPU controlaba minuciosamente todas las operaciones elementales que efectuaba el periférico. Poco a poco estas funciones, para descargar de trabajo a la CPU, se han ido descentralizando y pasando a los controladores, resultando éstos cada vez más complejos. Un controlador que realiza operaciones muy complejas se denomina controlador inteligente; este seria el caso de los procesadores gráficos, que pueden interpretar un lenguaje de alto nivel para realizar dibujos y controlan pantallas gráficas. La mayor parte de los controladores pueden considerarse computadoras de uso específico, ya que contienen un microprocesador, ROM con programas de gestión del periférico, una memoria intermedia ("buffer"), o memoria caché para datos (256 KB y superiores en algunos controladores de disco), etc. La CPU, a través de los puertos de salida correspondientes, da las órdenes oportunas al controlador para realizar un conjunto de operaciones de entrada o salida. En las computadoras grandes es normal que se incluyan procesadores de periféricos, IOP, o canales de datos. Estos son computadoras dedicados a funciones de entrada/salida, que suelen contener un microprocesador con instrucciones especializadas y una memoria local. Cada procesador de periféricos puede atender a varios periféricos simultáneamente, encargándose de operaciones de transferencias específicas de E/S, tal como intercambio de datos entre dos periféricos conectados a él (por ejemplo, copia de un archivo de un disco a otro). Como en el caso de los controladores inteligentes, siempre es la CPU quien supervisa el funcionamiento del IOP, aquí la CPU, una vez que ha cargado en los puertos o en una zona de memoria principal accesible por ambos, los parámetros correspondientes, lanza a ejecutar los programas residentes en los procesado res de periféricos (bien fijos en ROM o almacenados previamente por el sistema operativo). Cuando el IOP finaliza la ejecución del programa de E/S, indica este hecho a la CPU por medio de una interrupción. 5.2.- Direccionamiento de puertos de entrada y de salida. Con referencia a las operaciones de entrada/salida, los repertorios de instrucciones de las computadoras suelen optar por una de las siguientes posibilidades: a) Disponer de instrucciones E/S específicas. b) No disponer de instrucciones E/S específicas, en cuyo caso los puertos de E/S se codifican dentro del mapa de memoria, diciéndose entonces que las instrucciones de E/S están mapeadas en memoria. En este caso se seleccionan un conjunto de direcciones de memoria para codificar las direcciones de los puertos. Luego el decodificador de direcciones se encarga de comprobar si la dirección depositada en el bus de direcciones corresponde a su código, en cuyo caso el controlador actúa. Capítulo 3: Estructura funcional de las computadoras. Ventajas Página 11. Inconvenientes Instrucciones específicas de E/S El diseño de los circuitos de decodificación de direcciones de memoria es más simple, ya que las. direcciones de memoria sólo implican a ésta. Se facilita la protección de E/S; por. ejemplo, haciendo que las instrucciones IN y OUT sean privilegiadas. Los programas son más cortos y más rápidos, ya que las instrucciones de. E/S son más cortas y su decodificación y ejecución más sencilla. Los programas son más legibles, ya que las instrucciones de E/S son fácilmente reconocibles. El diseño de la CPU resulta más complejo: Hay que incluir en la CPU circuitos específicos para codificar las instrucciones de E/S. Hay que generar una señal de control (IO/M) para que los circuitos externos diferencien entre una operación de acceso a memoria y una E/S. La CPU debe tener un terminal más para la señal de control IO/M. Direccionamiento de puertos en memoria. Menor complejidad en el diseño de la de puertos dentro CPU (el número de instrucciones del de memoria. del mapa de repertorio es menor). Cada puerto inutiliza una posición de memoria. Las instrucciones de acceso a memoria ocupan más espacio que las específicas de E/S (en los microprocesadores de 8 bits, por ejemplo,3 frente a 2 bytes): Disminuye la velocidad de procesamiento. Aumentan los requerimientos de memoria. Tabla 3.- Alternativas para realizar las operaciones de E/S.