PDF de programación - Tema 2 Unidades de Memoria y Entrada/Salida

Imágen de pdf Tema 2 Unidades de Memoria y Entrada/Salida

Tema 2 Unidades de Memoria y Entrada/Salidagráfica de visualizaciones

Publicado el 24 de Octubre del 2019
441 visualizaciones desde el 24 de Octubre del 2019
1,3 MB
23 paginas
Creado hace 13a (15/09/2010)
SISTEMAS ELECTRÓNICOS PARA EL
TRATAMIENTO DE LA INFORMACIÓN


Tema 2
Unidades de Memoria y Entrada/Salida


2.1. Módulos de Entrada/Salida



Los módulos de entrada/salida (E/S) tienen las siguientes funciones básicas:
• Conectar con la CPU y memoria vía bus del sistema.
• Conectar con los periféricos mediante conexiones de datos particularizadas.

Las funciones o requerimientos principales de los módulos de E/S se agrupan en las



siguientes categorías:


• Control y temporización.
• Comunicación con la CPU.
• Comunicación con los periféricos.
• Buffer de datos.
• Detección de errores.



Los recursos internos del sistema, tales como memoria o bus, están compartidos por
distintas actividades, entre las que está E/S. Por ello, los módulos E/S tienen requerimientos
de control y temporización. Por ejemplo, el control de transferencia de datos entre un
periférico y la CPU debe seguir la siguiente secuencia:



3. Si el periférico está listo, la CPU solicita la transferencia de datos por medio de un
comando al módulo E/S.

1. La CPU pide al módulo E/S el estado del periférico deseado.

2. El módulo E/S proporciona el estado.

4. El módulo E/S obtiene el dato del periférico.

5. El dato se transfiere desde el módulo a la CPU.



arbitrajes de bus.

Si el sistema emplea un bus, cada interacción entre CPU y E/S implica uno o más



2. 1

JUAN F. GUERRERO MARTÍNEZ
JOSÉ V. FRANCÉS VILLORA
Curso 2010-2011





Interface con
Dispositivo Externo

SISTEMAS ELECTRÓNICOS PARA EL
TRATAMIENTO DE LA INFORMACIÓN



Una tarea esencial del módulo E/S es servir de buffer de datos. Mientras la
transferencia es muy rápida entre éste y la CPU, con los periféricos es mucho más lenta. El
E/S realiza así la conversión de velocidades de transmisión.


Finalmente, el módulo E/S es frecuentemente responsable de realizar una detección de
errores, que pueden ser avisados por el periférico (por ejemplo, falta de papel en una
impresora) o producirse por fallos de transmisión (error de paridad de un carácter
transmitido).


Estructura de un modulo E/S

Interface con
Bus Sistema



Bus Datos



Bus Direc.


Bus Control



En la figura 2.1 se muestra el diagrama general de un módulo E/S. Los datos
transferidos desde o hacia el módulo se almacenan en uno o más registros de datos. Puede
haber también uno o más registros de estados que proporcionan información sobre el estado
actual. Un registro de estado puede actuar también como un registro de control, aceptando
información de control de la CPU. La lógica del módulo interactúa con la CPU mediante un
conjunto de líneas de control, que utiliza la CPU para ordenar funciones al módulo
(lectura/escritura), o por éste mismo (líneas de arbitraje y estado). El módulo puede también
reconocer y generar direcciones asociadas con los dispositivos que controla. Cada módulo



Reg. Datos



Reg. Control/Estado



Figura 2.1. Diagrama de bloques de un módulo E/S.

Lógica
Interface
Dispositivo
Externo

Lógica
Interface
Dispositivo
Externo



Lógica
E/S



Datos
Estado
Control

Datos
Estado
Control







2. 2

JUAN F. GUERRERO MARTÍNEZ
JOSÉ V. FRANCÉS VILLORA
Curso 2010-2011





SISTEMAS ELECTRÓNICOS PARA EL
TRATAMIENTO DE LA INFORMACIÓN

tiene una única dirección o, si controla más de un periférico, un único conjunto de
direcciones (dirección base + direcciones para los distintos registros internos) El bus de
direcciones es bidireccional para módulos E/S que pueden actuar de master del bus (DMA).
Finalmente, el módulo E/S contiene lógica específica para conectar con el periférico que
controla.


Un módulo de E/S permite a la CPU controlar al periférico únicamente con
operaciones de lectura/escritura, ocultando otras funciones más específicas (por ejemplo,
rebobinar la cinta para acceder al dato). Cuando el módulo asume funciones de alto nivel, se
denomina canal E/S o procesador E/S. Los módulos de bajo nivel, que requieren control
detallado, se denominan controladores E/S o controlador de periféricos.


Cuando la CPU, memoria principal e E/S comparten un bus común, hay dos modos de
direccionamiento posibles: mapeado de memoria y aislado. Con E/S mapeado de memoria
existe un único espacio de direcciones para las posiciones de memoria y los módulos E/S. La
CPU trata los registros de datos y estado de los módulos como posiciones de memoria, y
utiliza las mismas instrucciones máquina para acceder a memoria y E/S. Las líneas del bus de
direcciones dan un número máximo de posiciones a direccionar, que estarán repartidas entre
memoria y E/S en alguna proporción.


En el otro caso, el bus de control dispone de líneas de lectura/escritura en memoria
más otras en entrada/salida. En este caso, el comando especifica cuándo una dirección se
refiere a memoria o E/S. Se puede utilizar todo el rango del bus de direcciones para
direccionar memoria y E/S de forma independiente, de ahí el nombre de E/S aislada.


La ventaja del primer tipo es que generalmente existen muchas más instrucciones
referidas a memoria que a E/S, lo cual permite una programación más eficiente. Por contra,
utiliza espacio del mapa de memoria.


2.2. Técnicas de entrada/salida

Entrada/salida programable


Con E/S programable, el módulo realiza la instrucción que le encarga la CPU y coloca
los bits correspondientes en el registro de estado. Es responsabilidad de la CPU comprobar
periódicamente el estado hasta que se complete la instrucción.


Supongamos, por ejemplo, el caso de lectura de datos de un periférico y
almacenamiento en memoria. Para ejecutar la instrucción E/S, la CPU utiliza una dirección,
que especifica el módulo particular, y un comando E/S (en este caso, lectura). Los datos se



2. 3

JUAN F. GUERRERO MARTÍNEZ
JOSÉ V. FRANCÉS VILLORA
Curso 2010-2011





SISTEMAS ELECTRÓNICOS PARA EL
TRATAMIENTO DE LA INFORMACIÓN

leen de uno en uno. Para cada palabra, la CPU debe permanecer en un ciclo que
comprobación hasta que determina que el dato está disponible en el registro de datos del
módulo. Esta es la principal desventaja de este módulo: el gran consumo de tiempo de la
CPU.


Entrada/salida controlada por interrupción


Una alternativa a la E/S programada, que requiere repetidas consultas por parte de la
CPU, es el control por interrupción. La CPU encarga una operación al módulo y continúa
realizando otras tareas. Cuando el módulo concluya la operación, interrumpirá a la CPU para
tansferir los datos. La CPU realiza la transferencia y continúa después en el lugar en que se
quedó con la otra tarea. Desde el punto de vista del módulo, éste recibe, por ejemplo, un
comando READ de la CPU, lee el dato del periférico asociado y lo almacena en el registro de
datos, produciendo una señal de interrupción a al CPU. El módulo espera hasta que responda
ésta, pasa el dato y está disponible para otra operación. Desde el punto de vista de la CPU,
ésta ordena un comando READ y sigue realizando otras tareas. Al terminar cada ciclo de
instrucción, comprueba la existencia de interrupciones pendientes. Cuando existen, la CPU
guarda el contexto de la tarea (generalmente PC y registros) y procesa la interrupción, en este
caso lee el dato y lo almacena en memoria. A continuación recupera el contexto de la tarea y
reasume la ejecución.

Este método es más eficiente que el anterior, pero implica un gran tiempo de
dedicación de la CPU al servicio de interrupciones ya que la transferencia de cada palabra
implica guardar y recuperar el contexto de la tarea en curso.



Hay dos cuestiones importantes en la implementación de E/S por interrupción:



1. Cómo determinar cuál de los módulos E/S ha producido la interrupción.
2. Si se producen interrupciones múltiples, priorizarlas.



Para la primera cuestión, existen 4 categorías:

• Múltiples líneas de interrupción.
• Consulta por software.
• Daisy chain (consulta por hardware, vectorizada).
• Arbitraje de bus (vectorizado).



La mejor solución es la existencia de múltiples líneas, pero resulta impracticable
dedicar muchos pines de la CPU a esta cuestión. Consecuentemente, aunque se utilizasen
varias líneas, siempre habría varios módulos conectados a cada línea, por lo que se debería
usar alguna de las otras técnicas.



2. 4

JUAN F. GUERRERO MARTÍNEZ
JOSÉ V. FRANCÉS VILLORA
Curso 2010-2011





SISTEMAS ELECTRÓNICOS PARA EL
TRATAMIENTO DE LA INFORMACIÓN



Una alternativa es la consulta por software. Cuando la CPU recibe una interrupción,
salta a una rutina cuya misión es determinar qué módulo ha causado la interrupción,
implementado operaciones de test, colocando la dirección de cada módulo en el bus de
direcciones hasta que uno de ellos responda afirmativamente. Otra alternativa es disponer en
cada módulo de un registro de estado que puede testear la CPU para identificar el origen de la
interrupción. Una vez se ha identificado, la CPU salta a la rutina de servicio específica. La
desventaja de esta técnica es que consume tiempo extra en la rutina de consulta.


Otra técnica más eficiente es la 'daisy chain'. que realiza una consulta hardware. En
est
  • Links de descarga
http://lwp-l.com/pdf16768

Comentarios de: Tema 2 Unidades de Memoria y Entrada/Salida (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad