Explicar el método de control IO en detalle desde el grupo de medidores y el sistema operativo

método de control de E/S

De hecho, IO se menciona tanto en el sistema operativo como en el grupo de medidores. Estos dos contenidos tienen énfasis diferentes y hay una gran superposición, por lo que lo resolveré aquí.

En el sistema operativo, hablé sobre el proceso básico y el grupo de medidores también habló sobre varios circuitos de interfaz.

1. Modo de control de programa directo

En el modo de control directo del programa, el proceso del usuario controla directamente la memoria principal o la transferencia de información entre la CPU y los dispositivos periféricos. **El modo de control de programa directo también se denomina modo de consulta o modo ocupado/espera. **Pruebe el bit indicador de ocupado/ocupado del dispositivo de E/S mediante el comando de E/S o el comando de consulta para determinar si se debe intercambiar un carácter o una palabra entre la memoria principal y el dispositivo periférico.

El flujo de trabajo del método de control directo del programa es el siguiente:

  • ① Cuando el proceso del usuario necesite ingresar datos, envíe un comando de E/S al controlador a través de la CPU, inicie el dispositivo para ingresar datos y establezca el estado ocupado/ocupado en el registro de estado en 1 al mismo tiempo.
  • ② El proceso de usuario ingresa al estado de espera de prueba. Durante el proceso de espera, la CPU verifica continuamente el bit ocupado en el registro de estado del dispositivo periférico con un comando de prueba, y el dispositivo periférico solo verifica el bit ocupado en el registro de datos del dispositivo periférico. controlador después de que los datos se transmiten al controlador.es 0,.
  • ③ El procesador extrae los datos del registro de datos, los envía a la unidad designada de la memoria principal, completa la operación de E/S de un carácter y luego realiza la operación de E/S de los datos siguientes.

En resumen: habrá un proceso de control de E/S y la CPU siempre estará atrapada en un ciclo de consulta, esperando que el dispositivo de E/S prepare los datos.

Aunque el método de control directo del programa es simple y no requiere mucho soporte de hardware, debido a la falta de coincidencia de velocidad entre la CPU de alta velocidad y el dispositivo de E/S de baja velocidad, la CPU y los dispositivos periféricos solo pueden funcionar en serie, lo que hace que la CPU absolutamente La mayor parte del tiempo se pasa esperando la finalización de la prueba del ciclo de operación de E/S, lo que resulta en una gran pérdida de CPU, los equipos periféricos no se pueden usar de manera razonable, la eficiencia de todo el sistema es muy baja. Por lo tanto, este método de control de E/S solo es adecuado para sistemas con una velocidad de ejecución de CPU más lenta y menos dispositivos periféricos.

2. Modo de control controlado por interrupción

La solicitud de alarma del dispositivo IO provoca la alarma externa de la CPU.

Para reducir el tiempo de espera de la CPU bajo el control directo del programa y mejorar el paralelismo del sistema, el sistema introduce un mecanismo de interrupción. Después de la introducción del mecanismo de interrupción, el dispositivo periférico envía una solicitud de interrupción a la CPU solo cuando la operación finaliza de manera normal o anormal.

En el proceso de entrada de cada dato por el dispositivo de E/S, el trabajo paralelo de la CPU y el dispositivo de E/S se realiza hasta cierto punto sin la intervención de la CPU. Solo cuando se completa una entrada o salida de datos, la CPU necesita pasar un tiempo muy corto para el procesamiento de interrupciones.

El artículo al que se hace referencia aquí no está claramente escrito, de hecho, cuando se interrumpe IO, en primer lugar, la CPU necesita generar una interrupción para iniciar nuestro dispositivo IO, y luego pensamos que el dispositivo está siempre encendido. Luego, la CPU continúa haciendo lo suyo, mientras que el dispositivo también lo hace. Es decir, la preparación de datos por parte del dispositivo IO no tiene nada que ver con la CPU. Cuando se complete la preparación de datos del dispositivo IO, se emitirá una solicitud de interrupción, lo que requerirá que la CPU procese los datos preparados por el dispositivo IO. dispositivo (ingresando al controlador de interrupciones, pero muchas veces es para pedirle a la CPU que acceda a la memoria para almacenar los datos).

(No entraré en detalles sobre el proceso detallado de la interrupción, déjalo para la interrupción)

Problemas existentes: dado que la operación de E/S está controlada directamente por la CPU, se produce una interrupción cada vez que se transmite un carácter o una palabra, lo que aún consume mucho tiempo de procesamiento de la CPU, por lo que se puede reducir agregando registros de búfer para periféricos. dispositivos para almacenar datos número de interrupciones. (Es posible la puesta en escena del proceso de preparación de datos)

Las características de los dos métodos anteriores están centradas en la CPU, la transmisión de datos se realiza a través de un programa y los medios de transmisión del software limitan la velocidad de transmisión de datos.

3. Método de control de acceso directo a la memoria

El método de control de acceso directo a la memoria también se denomina método DMA (Acceso directo a la memoria). Para reducir aún más la intervención de la CPU en las operaciones de E/S y evitar la pérdida de datos provocada por demasiados dispositivos operativos paralelos, que hacen que la CPU tarde demasiado en procesar o que la velocidad no coincida, se introduce un método de control DMA. Bajo el control del controlador DMA, al robar o apropiarse indebidamente del derecho de control del bus, se abre un canal directo de intercambio de datos entre el dispositivo y la memoria principal , y los datos se intercambian en lotes sin intervención de la CPU.

Lo más importante es abrir el canal DMA y el dispositivo IO ya no usa la CPU para almacenarlo en la memoria.

De hecho, siempre me gusta agregar canales DMA, pero el DMA aquí no tiene canales, así que cambié mi nombre.

Características del modo DMA:

  • La transmisión de datos toma los bloques de datos como unidad básica, y la CPU planifica qué bloque almacenar en la memoria al principio .
  • ② Los datos transmitidos se envían directamente desde el dispositivo a la memoria principal o se envían directamente desde la memoria principal al dispositivo.
  • ③ Solo se requiere la intervención de la CPU al principio y al final de la transferencia de uno o más bloques de datos, mientras que la transferencia de todo el bloque de datos se completa bajo el control del controlador.
    • Es decir, el método DMA requiere que la CPU nos proporcione dónde se almacenan los datos en la memoria. Solo puede ser un espacio continuo y la predicción debe completarse desde el principio.

En comparación con el modo de control controlado por interrupciones, el modo DMA reduce la intervención de la CPU en las operaciones de E/S y mejora aún más el grado de funcionamiento en paralelo entre la CPU y los dispositivos de E/S.

El método DMA tiene líneas simples y precios bajos, y es adecuado para la transmisión de datos por lotes entre dispositivos de alta velocidad y la memoria principal.Este método se usa para dispositivos rápidos en pequeñas y microcomputadoras, pero sus funciones son deficientes y no pueden cumplir con E/S complejas. Requerir.

Tres formas de usar el canal DMA

En primer lugar, ¿por qué deberíamos considerar esto? El problema con esto es que solo un dispositivo puede acceder a la memoria principal a la vez. Tanto el DMA como la CPU interactúan directamente con la memoria principal, entonces, ¿cómo la asignamos?

  1. evitar que la CPU acceda a la memoria principal
    1. Esto es muy violento, y el DMA enviará una señal a la CPU para decirle a la CPU que se detenga.
  2. robo de ciclo
    1. Ocupación real del bus y ciclos de memoria principal
    2. Cuando el IO envía una solicitud de DMA, se detiene durante algunos ciclos de memoria principal y la CPU ocupa la memoria principal (sin interrupción)
  3. acceso alternativo
    1. Esto generalmente requiere que un ciclo de instrucción de la CPU (trabajo en el libro, pero creo que es una instrucción) sea más largo que el ciclo de almacenamiento de la memoria principal. En un ciclo de trabajo, no habrá acceso a la memoria, y la parte que lo hace no acceder a la memoria se fijará en DMA.

Composición de la interfaz DMA

Solo se puede decir que el grupo de medidores es realmente mucho más pequeño que el sistema operativo.

nombre
AIRE (MAR) Viejo conocido, registro de dirección de memoria Cuando la CPU activa el modo DMA, primero debe especificar la primera dirección de la memoria almacenada
WC contador de palabras Se utiliza para registrar cuántas palabras se almacenan en total, se activa cuando se activa la UCP y va decreciendo (se refiere al valor, porque puede ser un complemento), y se dispara una interrupción cuando llega a 0 .
BR registro de búfer de datos No hace falta decir esto
Lógica de control DMA Uno es responsable de aplicar a la CPU para la inicialización, y el otro es responsable de todos los procesos posteriores, como la modificación del registro de la interfaz, el direccionamiento, la identificación y el envío de la señal del dispositivo.
mecanismo de interrupción Responsable de emitir señales de interrupción.
Registro de direcciones de dispositivos DAR Registros para información de dispositivos IO, porque también tenemos que elegir dispositivos IO. Número de dispositivo, información de la memoria del dispositivo. (Preste especial atención a que la memoria externa también es un dispositivo IO, por lo que la dirección de datos del disco puede almacenarse aquí)

4. Método de control de canales

En resumen: el canal también es un procesador, y la CPU envía el trabajo de gestión de la interacción entre el dispositivo IO y la memoria (la primera dirección del programa de gestión + el número del dispositivo IO) al canal. el trabajo es descrito por el programa del canal en la memoria.

Aunque el método DMA ha reducido significativamente la intervención de la CPU en comparación con el método de interrupción, es decir, la intervención en unidades de bytes (bytes) se ha reducido a la intervención en unidades de bloques de datos. **Pero cada vez que la CPU emite una instrucción de E/S, solo puede leer/escribir un bloque de datos continuo. **Cuando necesitamos leer múltiples bloques de datos a la vez y transferirlos a diferentes áreas de memoria, o viceversa, la CPU necesita emitir múltiples instrucciones de E/S y realizar múltiples procesos de interrupción para completar.

El método de control de canal realiza la operación paralela de la CPU, el canal y los dispositivos de E/S , mejorando así de manera más efectiva la tasa de utilización de recursos de todo el sistema. Por ejemplo, cuando la CPU quiere completar un grupo de operaciones de lectura (o escritura) relacionadas, solo necesita emitir una instrucción de E/S al canal de E/S, señalando la primera dirección del programa del canal que se ejecutará y el dispositivo de E/S al que se accede, después de que el canal recibe la instrucción, la tarea de E/S especificada por la CPU se puede completar ejecutando el programa del canal. Se puede ver que el canal solo envía una solicitud de interrupción de E/S a la CPU al principio y al final de la operación de E/S, lo que reduce aún más el grado de intervención de la CPU en comparación con el método de control anterior.

1. Introducción del modo de control de canales

El método de control de canales es similar al método de control DMA y también es un método de control centrado en la memoria que intercambia datos directamente entre el dispositivo y la memoria.

En comparación con el método de control DMA, el método de canal requiere menos intervención de la CPU y un canal puede controlar varios dispositivos, lo que reduce aún más la carga de la CPU.

Un canal es esencialmente un procesador simple que es responsable del control de entrada y salida, tiene la capacidad de ejecutar instrucciones de E/S y controla las operaciones de E/S mediante la ejecución de programas de E/S de canal.

  • Channel, independiente de la CPU, es un procesador responsable del control de entrada y salida, que controla el intercambio directo de datos entre el dispositivo y la memoria. Tiene sus propias instrucciones de canal que son iniciadas por la CPU y señalan una interrupción a la CPU al final de la operación.

El sistema de instrucciones del canal es relativamente simple, generalmente solo instrucciones de transmisión de datos, instrucciones de control de equipos , etc.

El método de control de canales de E/S es el desarrollo del método de control DMA, que reduce aún más la participación de la CPU en el control de la transmisión de datos, es decir, la intervención de lectura/escritura de un bloque de datos se reduce a la lectura de un grupo de bloques de datos. / Escribir e intervenir sobre el control y gestión de unidades. Al mismo tiempo, se pueden realizar operaciones paralelas de CPU, canales y dispositivos de E/S, lo que mejora de manera más efectiva la utilización de recursos de todo el sistema. En el modo de control de canal, la CPU solo necesita emitir un comando de inicio para indicar la operación requerida para el canal y el dispositivo de E/S utilizado, y el comando puede iniciar el canal y hacer que el canal llame al programa de canal correspondiente desde el memoria para la ejecución.

Tome como ejemplo la entrada de datos: cuando el proceso del usuario necesita datos, **CPU emite un comando de inicio para indicar la operación de E/S que se realizará, el dispositivo y el canal que se utilizará. **Cuando el canal correspondiente recibe la instrucción de inicio de la CPU, lee el programa del canal almacenado en la memoria, ejecuta el programa del canal y controla el dispositivo para transferir los datos al área designada en la memoria. Mientras el dispositivo recibe información, la CPU puede hacer otro trabajo. **Cuando finaliza la transferencia de datos, el controlador del dispositivo envía una solicitud de interrupción a la CPU. ** Después de que la CPU recibe la solicitud de interrupción, recurre al controlador de interrupciones para su ejecución y regresa al programa interrumpido después de que finaliza la interrupción.

  • Ventajas: El método de control de canales resuelve la independencia de las operaciones de E/S y el paralelismo del trabajo de cada componente. Libera a la CPU de las tediosas operaciones de entrada/salida. Después de adoptar la tecnología de canal, no solo se puede realizar la operación en paralelo de la CPU y el canal, sino que también se puede realizar la operación en paralelo entre los canales, y los dispositivos periféricos en cada canal también se pueden operar en paralelo, mejorando así la eficiencia de todo el sistema.
  • Contras: Mayor costo debido a que se requiere más hardware (procesadores de canal). El método de control de canal se usa generalmente en la ocasión de una gran interacción de datos.

El método de control de programa directo y el método de control de programa de interrupción son adecuados para la transmisión de datos de dispositivos de baja velocidad, mientras que el método DMA es adecuado para la transmisión de datos de dispositivos de alta velocidad, pero un controlador DMA solo puede controlar una pequeña cantidad de dispositivos similares , que está lejos de satisfacer las necesidades de los sistemas informáticos a gran escala. Por lo general, una computadora grande necesita conectar una gran cantidad de dispositivos de alta y baja velocidad, y el método de control de canales puede cumplir con este requisito. (La principal diferencia entre DMA y los métodos de control de canales: si puede satisfacer las necesidades de los grandes sistemas informáticos que pueden manejar tanto dispositivos de alta velocidad como dispositivos de baja velocidad)

2. Programa de canal

El canal implementa el control del dispositivo de E/S ejecutando el programa del canal y trabajando con el controlador del dispositivo. Un programa de canal se compone de una serie de instrucciones de canal. Instrucciones de canal y máquina general

Las instrucciones son diferentes, y cada una de sus instrucciones contiene la siguiente información:

  • 1) Código de operación. El código de operación especifica la operación realizada por la instrucción, como lectura, escritura, control y otras operaciones.
  • 2) Dirección de memoria. La dirección de memoria indica la primera dirección de la memoria cuando los caracteres se envían a la memoria (operación de lectura) y se extraen de la memoria (operación de escritura).
  • 3) Cuenta. Esta información indica el número de bytes de datos que debe leer/escribir esta instrucción.
  • 4) Bit de fin de programa de canal P. Este bit se utiliza para indicar si el programa del canal ha finalizado. P=1 significa que esta instrucción es la última instrucción del programa del canal.
  • 5) Bandera de fin de registro R. R=0 indica que los datos procesados ​​por esta instrucción de canal y la siguiente instrucción pertenecen al mismo registro, R=1 indica que esta es la última instrucción en procesar un determinado registro.

La diferencia entre el modo de control de canal y el modo de control DMA:

  • 1) En el modo de control DMA, se requiere que la CPU controle el tamaño del bloque de datos transmitido y la dirección de memoria que se transmitirá; en el modo de control de canal, esta información es controlada y administrada por el canal.
  • 2) Un controlador DMA corresponde a un dispositivo y memoria para transferir datos, y un canal puede controlar el intercambio de datos entre múltiples dispositivos y memoria.

La diferencia entre un canal de E/S y un procesador general: el tipo de instrucción de un canal de E/S es único y los comandos que puede ejecutar se limitan principalmente a instrucciones relacionadas con operaciones de E/S; el canal no tiene su propio memoria, y el programa del canal ejecutado por el canal se coloca en la memoria del host, es decir, el canal comparte memoria con la CPU .

Supongo que te gusta

Origin blog.csdn.net/interval_package/article/details/124524041
Recomendado
Clasificación