Tema3-1

Anuncio
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.
Descargar